iac/apps/cross-section/ENDPOINTS.md

4.5 KiB
Raw Permalink Blame History

Эндпоинты, с которыми взаимодействует 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 — весь ответ).