Я использую Discourse API для извлечения сообщений с форума. Мне нужна помощь в понимании значений полей, возвращаемых API. Например, поле post_type в каждом post — это число. Какие допустимые значения и что они означают? Аналогично, поле id в actions_summary — это число. Есть и другие поля, такие как reads, score и т. д., в которых я не разбираюсь. Подскажите, пожалуйста, где можно найти эту информацию. Спасибо!
Если на вашем сайте установлен плагин Data Explorer, вы можете узнать подробности о используемых числовых кодах, наведя курсор на соответствующие записи:
Например, наведение курсора на поле post_type в таблице posts показывает следующие значения:
- regular: 1
- moderator action: 2
- small action: 3
- whisper: 4
Помимо плагина Data Explorer, единственное место, где я знаю, как найти эту информацию, — это исходный код Discourse. Например, чтобы узнать значение каждого action_type из таблицы user_actions, введите UserAction.types в консоли Rails. Это вернет следующие значения:
{:like=>1, :was_liked=>2, :bookmark=>3, :new_topic=>4, :reply=>5, :response=>6, :mention=>7, :quote=>9, :edit=>11, :new_private_message=>12, :got_private_message=>13, :solved=>15, :assigned=>16}
Спасибо @simon! Это интересный способ получить эту информацию. Я провел небольшое расследование, основываясь на ваших предложениях, и нашел этот фрагмент кода для user_actions, но после тщательного поиска не смог найти ничего подобного для post_type. Я надеялся, что все поля, возвращаемые API, будут где-то задокументированы, по крайней мере, для важных полей, несущих значимую семантику.
Это понятно. Однако аналогичный код существует. Он находится здесь: discourse/app/models/post.rb at main · discourse/discourse · GitHub. Структура базы данных Discourse очень последовательна. Надеюсь, это поможет компенсировать отсутствие документации.
Не уверен, что каждое поле, возвращаемое API, будет задокументировано, но документирование различных мест, где возвращаются числовые коды, кажется важным. Примерами этого являются:
Post.typesUserAction.typesNotification.typesNotificationLevels.allUserOption.email_level_types
Если мы решим это сделать, я не уверен, где лучше всего разместить документацию. Возможно, на https://docs.discourse.org/, но могут возникнуть технические сложности с такой реализацией.
Спасибо, @simon! Да, указание английских названий/однострочных описаний для числовых кодов было бы очень полезно. Есть ли где-то, где я могу оставить запрос на это?
Я согласен, что эти поля необходимо задокументировать. Я назначу эту тему на себя и прослежу, чтобы это было сделано.
