4.5 KiB
Эндпоинты, с которыми взаимодействует cross-section
Документ описывает все HTTP-эндпоинты внешних сервисов, к которым обращается модуль (микрофронтенд cross-section).
Как устроено взаимодействие
Запросы описаны в двух API-объектах в module/api/endpoints.ts: crossSectionApi (поперечные сечения) и exportsApi (экспорт и скачивание вложений). Каждый метод вызывает соответствующий хелпер httpService (getRequest/postRequest/deleteRequest) со структурой:
service— логическое имя сервиса (см. таблицу хостов ниже);url— путь запроса (с подстановкой параметров/query);data— опционально, тело запроса (дляPOST/PUT).
httpService создаётся функцией createHttpService из @sarex-team/sdk-js в module/api/http-service.ts. Базовый хост подставляется по ключу service из module/api/hosts.ts в зависимости от BUILD_ENV (по умолчанию prod). В окружении local тип сервиса переключается на original (setTypeOfHttpService("original")). Итоговый URL = <базовый хост сервиса> + url эндпоинта.
Базовые хосты по сервисам и окружениям
Значения из module/api/hosts.ts. Определены окружения local, stage, prod, preprod.
Сервис (service) |
Назначение | local |
stage |
prod |
preprod |
|---|---|---|---|---|---|
gateway |
Gateway/API Sarex (используется всеми эндпоинтами модуля) | https://stage-api.sarex.io/gateway/ |
https://stage-api.sarex.io/gateway/ |
https://api.sarex.io/gateway/ |
https://api.preprod.sarex.io/gateway/ |
drawings |
Сервис чертежей | https://stage-api.sarex.io/drawings/ |
https://stage-api.sarex.io/drawings/ |
https://api.sarex.io/drawings/ |
https://api.preprod.sarex.io/drawings/ |
sarex |
Локальный сервис данных (относительные пути) | https://stage.sarex.io/ |
"" |
"" |
"" |
zitadel |
IdP (аутентификация) | https://idp.dev.stage.sarex.io |
https://idp.dev.stage.sarex.io |
https://login.sarex.io |
https://login.preprod.sarex.io |
Фактически все эндпоинты модуля обращаются к сервису
gateway. Сервисыdrawings,sarexиzitadelобъявлены в реестре хостов, но напрямую вendpoints.tsне используются.
Эндпоинты по сервисам
gateway — Gateway/API Sarex
crossSectionApi — поперечные сечения
| Ключ | Метод | Путь | Назначение |
|---|---|---|---|
getCrossSections |
GET | api/v1/drawings/cross-sections?instance_id={uuid} |
Список поперечных сечений по инстансу |
getCrossSectionData |
GET | api/v1/drawings/cross-sections/{uuid}/data |
Данные поперечного сечения по uuid |
createCrossSections |
POST | api/v1/drawings/cross-sections |
Создать поперечное сечение (тело — model) |
removeCrossSections |
DELETE | api/v1/drawings/cross-sections/{uuid}/ |
Удалить поперечное сечение |
exportsApi — экспорт
| Ключ | Метод | Путь | Назначение |
|---|---|---|---|
createExport |
POST | api/v1/drawings/exports |
Создать экспорт (тело: company_id, cross_section_id, file_type; по умолчанию file_type = "dwg") |
downloadExport |
GET | api/v1/attachments/{attachment_id} |
Скачать вложение экспорта по id |
Обработка ошибок
В модуле нет отдельного слоя маппинга ошибок (аналога module/api/errors.ts): обработка HTTP-ошибок выполняется на уровне httpService из @sarex-team/sdk-js. Каждый метод возвращает response.data (для createExport — весь ответ).