Nenhuma descrição em uma categoria via API

Olá,

Ainda estou importando dados de um aplicativo antigo para o nosso novo Discourse.
Não consigo criar uma categoria com sua descrição com a seguinte chamada de API:

curl -X POST "https://site-discourse/categories.json" \
-H "Api-Key: api-key" \
-H "Api-Username: api-username" \
-d "name=categorie test" \
-d "description=Description De La Categorie"

A categoria é criada, mas não há descrição.

Recebo a seguinte resposta:

{"category":{"id":21,"name":"categorie test",[...],"slug":"categorie-test", [...] **,"description":null**,"description_text":null,"description_excerpt":null,"topic_url":"/t/a-propos-de-la-categorie-categorie-test/12286", [...]}

Obrigado pela ajuda.

Olá :blob_wave:
A descrição de uma categoria é o conteúdo do tópico “Sobre” criado automaticamente. O texto padrão é provavelmente considerado “nulo” até ser editado.

Acho que não há um parâmetro “description” disponível na solicitação para criar uma categoria, e você precisa fazer outra solicitação de API para atualizar a primeira postagem do tópico “Sobre”.

Dependendo do seu processo de importação, você pode querer usar um script de importação adequado em vez de usar a API. Veja Migration

1 curtida

Obrigado pela sua resposta

Criei este script que permite criar uma categoria e, em seguida, modificar sua descrição:

curl -X POST "https://site-discourse/categories.json" \
 -H "Api-Key: api-key" \
 -H "Api-Username: api-username" \
 -d "name=Catégorie 1"
 
sleep 2
 
latest_posts_response=$(curl -X GET "https://site-discourse/posts.json" \
 -H "Content-Type: application/json" \
 -H "Api-Key: api-key" \
 -H "Api-Username: api-username")
 
post_id=$(echo $latest_posts_response | jq  '.latest_posts[0] .id')
   
curl -X PUT "https://site-discourse/posts/$post_id.json" \
 -H "Content-Type: application/json" \
 -H "Api-Key: api-key" \
 -H "Api-Username: api-username" \
 -d '{
        "post": {
        "raw": "Description de la catégorie 1"
      }
     }'

No final, funcionou?

Sim, obrigado, funciona!

1 curtida