在 REST API 调用中应如何格式化字符串数组?

问题描述 投票:0回答:1

我正在努力在 Deviant Art 上调用此 REST API。 here对此进行了描述。我对 REST API 不太熟悉,所以这可能是一个愚蠢的问题,但我无法弄清楚如何在这样的调用中编写字符串数组。

一开始我尝试过:

item1, item2, item3

但这似乎不起作用,所以我这样做了:

["item1", "item2", "item3"]

也没有用。其余 API 的描述如下。我正在尝试向

tags
提供元素。

POST,获取艺术家评论(字符串): 选修的 作者提供的有关提交内容的其他信息

POST、GET 标签(数组[字符串]): 选修的 描述提交的标签数组。仅限字母、数字和下划线。 分钟:1

我正在使用 Julia 编程语言,但我想这个问题是普遍的。这是我所做的摘录。在此示例中,我将 params.tags 转换为文本字符串。在原始版本中我只是直接传递数组,但这不起作用。

headers = []
data = convert_to_dict(params)
data["attachment"] = io
data["access_token"] = token.access_token

quoted_tags = map(tag->"\"$tag\"", params.tags)
tags_str = "[" * join(quoted_tags, ",") * "]"

data["tags"] = tags_str
body = HTTP.Form(data)
resp = HTTP.post(url, headers, body)
body = HTTP.payload(resp)

如果您不知道这个问题的答案,也许您可以给我一些关于如何调试这个问题的提示,或者去了解它应该是什么样子。

arrays rest julia http-post
1个回答
0
投票

我很难弄清楚这一点,但实际上 VS Code 中的 Codepilot 给了我答案。由于不允许人工智能答案,我会用自己的话写出答案。

据我所知,对于如何传递数组数据没有一个单一的约定。相反,有多种样式。因此,如果

tags
是键,则可以设置为:

  1. 标签=标签1,标签2,标签3
  2. 标签=[“标签1”,“标签2”,“标签3”]
  3. 标签[0]=标签1&标签[1]=标签2&标签[2]=标签3

为了让它在 Julia 中工作,我编写了以下代码:

tags_dict = Dict("tags[$(i-1)]" => tag for (i, tag) in enumerate(params.tags))
data = merge(data, tags_dict)
delete!(data, "tags")
© www.soinside.com 2019 - 2024. All rights reserved.