Есть ли REST-ресурс для загрузки и назначения вложений к постам?

Здравствуйте,

  1. Мои вложения — это PDF-файлы, изображения и т. д.

  2. Я не нашёл параметр Attachment в ресурсе Post.

  3. Я подумал использовать ресурс Upload, указав type=“composer”. Но я не вижу способа связать Upload с Post. Или, возможно, это не тот ресурс для загрузки вложений?

Заранее спасибо.

В API постов напрямую нет поля «attachments». Чтобы прикрепить загруженный файл к посту, необходимо выполнить следующие шаги:

  1. Загрузить файл (получить короткую ссылку).
  • Сначала загрузите вложение через эндпоинт /uploads.json:
  • Эндпоинт: POST /uploads.json
  • В ответе будет содержаться short_url, например upload://abcDEF123.pdf.
  1. Отредактируйте или создайте пост, включив эту короткую ссылку, чтобы Discourse распознал её и связал загрузку с постом. Чтобы назначить загруженное вложение посту, нужно включить короткую ссылку на загрузку в необработанный контент поста, используя Markdown. Для вложений можно использовать следующий формат:
[filename.pdf|attachment](upload://abcDEF123.pdf)

Или для изображений:

![alt text](upload://abcDEF123.png)

Это можно сделать при создании поста (используя POST /posts.json) или при редактировании существующего поста (используя PUT /posts/{id}.json), поместив markdown-ссылку в поле raw.

Для справки, на эту тему также есть несколько существующих тем: