我需要使用API批量创建组

大家好,

我需要使用 API 大量创建群组,但 JSON 不接受数组的多个值,只有在每次 API 调用创建一个群组时才有效。

理想情况下,我希望只发送一个创建请求,并将名称作为 JSON 数组,但这会触发状态:
500(内部服务器错误)

我期望以下方法会起作用,但它不起作用——请帮忙!我们有 200 多个群组,我正在按照文档的要求对 https://{defaultHost}/admin/groups.json 使用 POST 方法。

{
  "group": [
    {
      "name": "X"
    },
    {
      "name": "Y"
    },
    {
      "name": "Z"
    }
]
}

在我看来,它叫做 createGroup 而不是 createGroups。它说它“创建一个组”,而不是“创建任意数量的组”。
您需要自己循环遍历这些值,并为要添加的每个组调用它。您可能需要插入一些延迟,或者在遇到速率限制时构建重试代码。

1 个赞

@pfaffman 好的,谢谢,有道理!

~B

1 个赞

@pfaffman 编写了一个小脚本,效果正如预期的那样,但现在我遇到了另一个问题。API 只允许“name”,而不允许“full name”,因此我无法使用 create 方法填充 full name。唯一允许的字段“name”也不允许空格,所以我最终得到了大量 full name 为空的组,而“name”不得不使用“_”。

理想情况下,我希望在通过 API 创建组时,除了 name 之外,还能提供 full name?

谢谢
Boyan

这没有意义,因为 API 是前端用来创建组的。既然可以在用户体验中创建全名,那么也可以在 API 中创建。

组名就是这样工作的。

请指出我在哪里指定全名?我不同意前端使用 API,因为我显然可以使用前端编辑全名,但在这里我没有看到全名?

抱歉。我以为我已将您指向逆向工程 Discourse API。我建议使用逆向工程方法或直接查看源代码。我不认为任何积极开发 Discourse 的人实际上会使用那些文档,所以我不敢相信它们是完整或最新的。