FLucas
01.Сентябрь.2023 08:58:09
1
Привет,
Я всё ещё импортирую данные из старого приложения в наш новый Discourse.
Не удаётся создать категорию с её описанием с помощью следующего 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"
Категория создаётся, но описание отсутствует.
Получаю следующий ответ:
{"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", [...]
Спасибо за помощь.
Canapin
(Coin-coin le Canapin)
01.Сентябрь.2023 09:05:52
2
Привет
Описание категории — это содержимое автоматически созданной темы «О нас». Текст по умолчанию, вероятно, считается «пустым» (null), пока его не отредактируют.
Кажется, в запросе на создание категории нет доступного параметра «description», и вам потребуется сделать отдельный API-запрос для обновления первого сообщения в теме «О нас».
В зависимости от вашего процесса импорта, возможно, стоит использовать специальный скрипт импорта вместо работы через API. См. #migration
FLucas
01.Сентябрь.2023 16:49:54
3
Спасибо за ваш ответ
Я создал этот скрипт, который позволяет создать категорию, а затем изменить её описание:
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": "Описание категории 1"
}
}'
FLucas
04.Сентябрь.2023 16:00:39
5
Да, спасибо, всё работает!