Запросы
NocoBase предоставляет APIClient на базе Axios, который можно использовать для выполнения HTTP-запросов из любого места, где доступен Context.
Типичные места, где можно получить Context:
app.contextengine.contextplugin.contextmodel.context
ctx.api.request()
ctx.api.request() — наиболее часто используемый метод для выполнения запросов. Его параметры и возвращаемые значения совпадают с axios.request().
Базовое использование
Можно напрямую использовать стандартные конфигурации запросов Axios:
ctx.api.axios
ctx.api.axios — это экземпляр AxiosInstance, через который можно изменять глобальные конфигурации по умолчанию и добавлять перехватчики запросов.
Изменение конфигурации по умолчанию
Полный список доступных настроек см. в Конфигурация по умолчанию Axios.
Перехватчики запросов и ответов
Перехватчики позволяют обрабатывать запросы до отправки и ответы после получения. Например: единообразно добавлять заголовки, сериализовать параметры или показывать унифицированные сообщения об ошибках.
Пример перехватчика запроса
Пример перехватчика ответа
Пользовательские заголовки за проса на сервере NocoBase
Ниже перечислены пользовательские заголовки запроса, поддерживаемые сервером NocoBase. Они используются в сценариях с несколькими приложениями, интернационализацией, несколькими ролями и несколькими способами аутентификации.
💡 Подсказка
Обычно эти заголовки автоматически добавляются перехватчиками и не требуют ручной установки. Вручную их добавляют только в специальных сценариях (например, в тестовых окружениях или конфигурациях с несколькими экземплярами).
Использование в компонентах
В React-компонентах можно получить объект контекста через useFlowContext(), а затем вызывать ctx.api для выполнения запросов.
Использование вместе с useRequest из ahooks
В реальной разработке можно использовать хук useRequest из ahooks, чтобы удобнее управлять жизненным циклом запроса и состоянием.
Этот подход делает логику запросов более декларативной и автоматически управляет состояниями загрузки, обработкой ошибок и обновлением данных, что отлично подходит для использования в компонентах.

