Использование Discourse в качестве платформы для обзоров и обсуждений комиксов

Именно так я поступаю в своём сообществе настольных игр: всякий раз, когда в мою базу данных добавляется (или переименовывается) настольная игра, создаётся или обновляется тег и два пользовательских топика.

Насколько я помню, когда я работал над этим, не было специального эндпоинта для создания одного тега (хотя при создании топика можно добавить новый), но мне удалось использовать пакетную загрузку тегов для решения этой задачи.

Что-то вроде этого:

const formData = new FormData();
formData.append("file", Buffer.from("the-tag-name,an-optional-tag-group"), {
  contentType: "text/csv",
  filename: "tags.csv",
});
const { data } = await axios.post(`${process.env.DISCOURSE_URL}/tags/upload.json`, formData, {
  headers: {
    ...formData.getHeaders(),
    "Api-Key": process.env.API_KEY,
  },
});