Лимиты запросов API

Всем привет,
Я наткнулся на несколько (немного устаревших) статей на этом форуме, описывающих ограничения скорости API (например: Available settings for global rate limits and throttling). Это меня интересует, потому что при настройке нашего сайта мы делаем несколько вызовов API, связанных с пользователями и темами, и я хочу убедиться, что сводим количество вызовов к минимуму.

Можно ли до сих пор настраивать эти параметры через панель администратора? Я пока не нашёл ничего, что касалось бы ограничений скорости API в Discourse.

Если нет, есть ли способ отслеживать активность запросов где-либо?

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

Эти настройки ограничений скорости API не конфигурируются через панель администратора. Вместо этого их нужно добавить в файл app.yml на сервере, где размещён ваш сайт Discourse. Если вы используете самохостинг, вам потребуется подключиться к серверу по SSH, чтобы внести изменения.

@blake спасибо за ответ! Наша команда собирается использовать Discourse для хостинга, поэтому у нас нет собственных конфигурационных файлов. Есть ли какие-либо возможности для просмотра или настройки ограничений API, если мы выберем этот путь?

:+1:

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

Мы рекомендуем, чтобы ваше приложение, выполняющее вызовы API, обрабатывало ошибки 429, а затем проверяло заголовок Retry-After, который возвращается. Это подскажет вам, когда можно снова начать отправлять запросы.

@blake, спасибо ещё раз за информацию! Думаю, моя команда, скорее всего, устроит текущий стандартный лимит скорости, установленный в Discourse. Можешь поделиться, какие именно это лимиты? Мне пока не удалось найти их полный список.

Да, лимиты по умолчанию перечислены здесь для тарифов Pro/Business.

@blake еще раз спасибо за информацию! Это отчасти связано, но не знаете ли вы, есть ли график добавления кастомизаций сериализаторов на уровне тем/компонентов? Я видел упоминания об этой функции на этом форуме время от времени в течение прошлого года, но знаю, что она еще не реализована.

Я спрашиваю, потому что в настоящее время мы получаем данные о пользователях для каждого топика в списке топиков, что может привести к значительным затратам по мере роста числа пользователей на нашей платформе. Добавление определенных полей модели пользователя в некоторые сериализаторы могло бы помочь сократить количество API-запросов, которые нам сейчас приходится делать.

На данный момент я не знаю о каких-либо сроках.

Однако я рекомендую использовать плагин data-explorer для выполнения пользовательских запросов к данным, подобных этому. Вы можете создать собственный SQL-запрос, сохранить его, чтобы он получил идентификатор, а затем выполнить API-вызов к этому сохранённому запросу. В результате он выполнится и вернёт нужный вам JSON в рамках одного запроса.