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.