Go语言 在元数据列表类型的json请求中发送数组时,HTTP PUT调用shopify时出错

8ftvxx2r  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(103)

这是一个http PUT响应,用于更新shopify中现有文章的元字段。
PUT项目上的API文档

func UploadArticleListImg(client *http.Client, ArticleIDs []string, imageURL []string, blogID string) {

    newArticleQueryFinal := fmt.Sprintf(newArticleQuery, blogID)
  for _, ID := range ArticleIDs {

    Article := &ArticlePut{
        Blog_id: blogID,
        ID:      ID,
        Metafields: []ArticlePutMeta{
            {
                Key:       "flip_book_images",
                Value:     imageURL,
                Type:      "list.url",
                Namespace: "custom",
            },
        },
    }

    spew.Dump(Article)
    articleJSON, err := json.Marshal(map[string]interface{}{"Article": Article})
    articleReq, err := http.NewRequest("PUT", newArticleQueryFinal, bytes.NewReader(articleJSON))
    articleReq.Header.Add("X-Shopify-Access-Token", token)
    articleReq.Header.Add("Content-Type", "application/json")

    resp, err := client.Do(articleReq)
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(resp.Status)

    body, err := io.ReadAll(resp.Body)
    if err != nil {
        fmt.Println(err)
    }

    sb := string(body)
    fmt.Println(sb)

    }

}

我的结构体如下

type ArticlePut struct {
    Blog_id    string           `json:"blog_id"`
    ID         string           `json:"id"`
    Metafields []ArticlePutMeta `json:"metafields"`
}

type ArticlePutMeta struct {
    Key       string   `json:"key"`
    Value     []string `json:"value"`
    Type      string   `json:"type"`
    Namespace string   `json:"namespace"`
}

我得到一个错误说
406不可接受
这些是我的文章元字段定义。

这是关于list_url元数据类型的文档

我错过了什么请帮帮我。

xdyibdwo

xdyibdwo1#

如果我输入如下的metafield的值,它就会工作。

Value: `["https://www.shopify.com","https://www.shopify.com","https://www.shopify.dev"]`

但是我不知道如何构造imageURL,使其前后带有单引号

相关问题