Ninguna descripción en una categoría a través de la API

Hola,

Todavía estoy importando datos de una aplicación antigua a nuestro nuevo Discourse.
No puedo crear una categoría con su descripción con la siguiente llamada 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"

La categoría se crea pero no tiene descripción.

Obtengo la siguiente respuesta:

{"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", [...]}

Gracias por tu ayuda.

Hola :blob_wave:

La descripción de una categoría es el contenido del tema “Acerca de” creado automáticamente. El texto predeterminado probablemente se considera “nulo” hasta que se edita.

Creo que no hay un parámetro “descripción” disponible en la solicitud para crear una categoría, y necesitas hacer otra solicitud de API para actualizar la primera publicación del tema “Acerca de”.

Dependiendo de tu proceso de importación, podrías querer usar un script de importación adecuado en lugar de usar la API. Ver Migration

1 me gusta

Gracias por tu respuesta

He creado este script que te permite crear una categoría y luego modificar su descripción:

curl -X POST "https://site-discourse/categories.json" \
 -H "Api-Key: api-key" \
 -H "Api-Username: api-username" \
 -d "name=Categoría 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": "Descripción de la categoría 1"
      }
     }'

¿Funcionó al final?

¡Sí, gracias, funciona!

1 me gusta