Preciso criar grupos em massa usando a API

Olá a todos,

Preciso criar vários grupos usando a API, mas o JSON NÃO aceita um array de múltiplos valores, só funciona se eu criar um grupo por chamada de API.

Idealmente, quero fazer uma chamada de criação e ter os nomes como um array JSON, mas isso gera o Status:
500 (Erro Interno do Servidor)

Eu esperava que o abaixo funcionasse, mas não funciona - ajude! Estamos falando de mais de 200 grupos, estou usando POST para https://{defaultHost}/admin/groups.json exatamente como a documentação pede.

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

Para mim, parece que ele se chama createGroup, não createGroups. Diz que ele “Cria um grupo”, não “Cria quantos grupos você quiser”.
Você precisará iterar pelos valores e chamá-lo para cada grupo que deseja adicionar. Provavelmente, você desejará inserir um atraso ou incluir código que tentará novamente quando atingir os limites de taxa.

1 curtida

@pfaffman Legal, obrigado, faz sentido!

~B

1 curtida

@pfaffman Funcionou como esperado ao escrever um pequeno script, mas agora estou enfrentando outro problema. A API permite apenas “name” e não “full name”, então não tenho como preencher o “full name” usando o método create. O único campo permitido, “name”, também não permite espaços, então acabo com um monte de grupos com “full name” em branco e o “name” tendo que usar “_”

Idealmente, eu gostaria de poder fornecer o “full name” além do “name” ao criar grupos usando a API?

Obrigado
Boyan

Isso não faz sentido, pois a API é o que o front-end usa para criar grupos. Como é possível criar nomes completos na UX, você pode criá-los na API.

É assim que os nomes dos grupos funcionam.

Por favor, aponte-me onde especifico o nome completo? Discordo respeitosamente que a API seja usada pelo front-end, pois claramente consigo editar o nome completo usando o front-end, mas aqui não vejo o nome completo?

Desculpe. Pensei que tinha te indicado Engenharia reversa da API do Discourse. Recomendo usar o método de engenharia reversa ou olhar diretamente no código-fonte. Não acho que alguém que esteja desenvolvendo ativamente o Discourse realmente use essa documentação, então não confio que ela esteja completa ou atualizada.