Ótima pergunta, concordo que isso pode ser um pouco confuso. Se você quiser passar vários post_ids, você deve enviar vários campos de dados de formulário para post_ids[], como neste exemplo de curl:
Essa ainda é a maneira recomendada de enviar um array para a API? Estou tentando criar um webhook e não consigo enviar o parâmetro de array web_hook_event_type_ids.
Tentei com CURL (como multipart/form-data)
curl -X POST "https://MYSITE.com/admin/api/web_hooks" \
-H "Api-Key: KEY" \
-H "Api-Username: USER" \
-F "payload_url=https://MYOTHERSITE.com" \
-F "content_type=1" \
-F "wildcard_web_hook=false" \
-F "verify_certificate=true" \
-F "active=true" \
-F "web_hook_event_type_ids[]=2"
# Recebo
{"errors":["param is missing or the value is empty: web_hook"]}%
Parece que todo esse endpoint exige os valores em um parâmetro aninhado web_hook:
Não sou muito fã desse formato aninhado, e há alguns endpoints como esse na minha lista futura para corrigir. Você pode fazer uma chamada de API a ele usando form-data da seguinte forma:
Ah, muito obrigado. Não era isso que estava escrito na API do Discourse, então eu estava ficando maluco.
Além disso, notei que definir web_hook_event_type_ids com pelo menos um item é obrigatório, mesmo que eu acabe usando wildcard_web_hook=true. Isso também me deixou confuso por um tempo.