Общая информация
Введение в эндпойнты
Прошлый модуль завершился созданием первого бизнес-процесса. Мы разобрались с тем, как создавать логику работы, принимать определенные входные параметры, производить расчеты и выдавать ответ. Осталось ответить на главный вопрос. Как же активировать созданный БП и как запустить его в работу?
Для решения этой задачи предназначены эндпойнты - конечные точки взаимодействия с приложением. В первых модулях мы уже взаимодействовали с внешними API. Это было возможным именно благодаря наличию эндпойнтов. Они были описаны в документации, мы читали ее и понимали каким методом и на какой URL необходимо послать запрос для доступа к определенному ресурсу.
Для понимания давайте рассмотрим реализацию эндпойнтов на конкретном примере. В третьем модуле была создана модель базы данных. При этом, одновременно с созданием таблиц, автоматически были созданы и эндпойнты для взаимодействия с ними. Перейдем в раздел эндпойнтов (на левой панели) и посмотрим на них.
На примере таблицы “city” с информацией о городах видно, что в ней уже есть 6 эндпойнтов для базовых операций с данными.
- GET /city - получение всех данных из таблицы
- GET /city/:id - получение данных об одном городе с указанным id
- POST /city - добавление новой записи в таблицу
- PUT /city/:id - полная замена записи с указанным id в таблице
- PATCH /city/:id - частичная замена записи с указанным id в таблице
- DELETE /city/:id - удаление записи с указанным id из таблицы
Основные настройки
У каждого эндпойнта можно открыть настройки и изучить его более детально. Для примера рассмотрим эндпойнт GET /city/:id
Увиденная картина очень похожа на ту, что мы уже встречали при создании запроса к внешним API. Просто в одном случае мы только обращались к готовому эндпойнту, а сейчас уже сами этот эндпойнт создаем и настраиваем. Для настройки необходимо указать:
- Метод запроса. В данном примере это метод GET
- URL запроса. Первая его часть с путем к серверу не указывается, она одинакова для всех эндпойнтов приложения. Достаточно указать лишь окончание (/city). Тут же указывается и параметр URL. Эндпойнт предназначен для получения информации о конкретном городе, поэтому в качестве параметра передается его id записанный после “:”.
- Endpoint Groups. Этот параметр никак не влияет на саму работу эндпойнта и предназначен только для удобства их организации. Все эндпойнты можно разделить по тематическим группам (папкам). В данном примере это группа “city” и в ней собраны все эндпойнты для работы с данными по городам.
- Business Process. Это самый важный пункт настройки и это то, что никак нельзя было увидеть при отправке запроса на эндпойнт. Именно указание бизнес-процесса определяет, что же будет делать данный эндпойнт. При этом сам эндпойнт может оставаться неизменным, он будет получать все те же запросы по старому адресу, и при этом, в случае замены бизнес-процесса, выполнять совершенно другую функцию. Бизнес-процессы для основных действий с базой данных создаются автоматически. Они называются системными бизнес-процессами. Такие БП нельзя изменить, но их в любой момент можно заменить на БП, созданные самостоятельно, на пользовательские бизнес-процессы.
- Input/Output variables. Созданный бизнес-процесс использует различные входные и выходные переменные, но в эндпойнте не обязательно использовать их все. Часть можно отключить или настроить так, чтобы различные эндпойнты обращались к одному БП с индивидуальным набором переменных. Тут же настраивается и сам тип запроса и ответа (Request/Response type). Чаще всего этим типом будет являться JSON, но, при необходимости, можно использовать и другие варианты, например XML или Render File (данный тип ответа используется в эндпойнтах для работы с файлами).
Настройки Middleware
Основных настроек достаточно для создания и дальнейшего использования эндпойнта, но при необходимости возможно использование и дополнительных параметров. Важнейшим из них является активация Middleware с токеном Auth.
Его использование позволяет запретить доступ к данному эндпойнту пользователям, которые не прошли авторизацию или не относятся к определенной группе (например, доступ может быть открыт только для администраторов и запрещен для остальных пользователей).
Дополнительные настройки
Помимо этого можно использовать настройки на вкладке Settings для дополнительного логирования заголовков или тела запроса, а также для того, чтобы скрыть из ответа те поля, значения которых не установлены.