Skip to content

@webitel/api-services Intro ​

Usage cases, Overview ​

@webitel/api-services експортує все необхідне для роботи з API Webitel.

Глобально, тут є 2 основні категорії:

  1. Згенероване на основі OpenAPI специфікації. Генерується у два проходи, бо дріт – snake_case, а аплікейшенам зручніше camelCase (детально: camelCase типи і snake_case дріт):

    • @webitel/api-services/gen та /gen/models – тільки типи у camelCase: сутності, enum'и, їхні zod схеми. Це те, що шарять між собою аплікейшени.
    • @webitel/api-services/gen-wire – функції для API ендпоінтів, zod схеми запитів/відповідей і типи до них, з іменами полів рівно як у swagger.
  2. @webitel/api-services/api/... – Самописна кодова база, що обгортає генеровані файли.

    • Наші API клієнти, які обгортають згенеровані функції для їхнього хендлінгу "під нас".
    • Допоміжні утиліти.

Як цим користуватись? ​

> Вам треба використати API'шку. ​

Десь на рівні інших апплікейшенів. скажімо, у якомусь store'і.

> Ви дивитесь (по експортах з @webitel/api-services/api), чи вона є. ​

> Вона Є – просто імпортуємо. ​

> ЇЇ Немає – дивимось в якусь з тих, що є, і пишемо подібне під необхідну API'шку-обгортку генерованих функцій. ​

> Немає навіть згенерованих сервісів (або коли бекенд каже "згенеруйте") – спершу генеруємо. ​

Через GitHub Action.