Публичный API проекта
Проектирование стабильного публичного API опирается на строгую версионность маршрутов (префиксы URL вроде /api/v1/), использование типизированных DTO и постраничную навигацию. Для внешних клиентов отключается CSRF-фильтрация в пользу Bearer JWT-токенов, активируются виртуальные сессии (BX_SECURITY_SESSION_VIRTUAL) и логируются все входящие и исходящие запросы.
Прогресс хранится в этом браузере. Войдите, чтобы сохранить его в аккаунте.
Что нужно понимать
-
1
Входящий REST API
-
2
Исходящие запросы
-
3
Аутентификация
Материалы
Официальная документация
-
Роутинг: раздел «Группировка маршрутов» Новая дока
-
JWT Новая дока
-
HTTP-клиент Новая дока
Проверь себя
Партнёр жалуется: после релиза из ответа API пропало поле. Чем это отличается от такого же изменения в AJAX-контроллере?
AJAX-контроллер меняется вместе с фронтом в одном релизе, а API читают чужие системы. Поле в старой версии живёт до объявленной даты, новое поведение выходит в группе маршрутов с новым префиксом версии.
В JSON ответа вместо кавычек приходит ", а в названиях — &. Откуда?
Данные взяты через GetNext(), который экранирует поля для HTML. Для API берут Fetch() или ORM, экранирует тот, кто выводит.
Запрос к внешнему сервису подвесил оформление заказа на минуту. Почему и что делать?
У HttpClient по умолчанию socketTimeout 30 и streamTimeout 60 секунд. Для вызовов на хите — короткие таймауты в http_client_options, а всё, что не нужно прямо сейчас, — в очередь.
Зачем для API-маршрутов включать виртуальную сессию?
BX_SECURITY_SESSION_VIRTUAL держит сессию в памяти: нет блокировки файла между параллельными запросами клиента и нет лишней записи. Ядро само использует её для REST-запросов.
Не сходится?
Спросите ассистента BXMax: он знает документацию и материалы сайта по этой теме.
Знаете материал лучше?
Предложите ссылку: после проверки она появится в этом разделе.
Войти, чтобы предложить