diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index fa9fe1c95..12695e284 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -90,7 +90,7 @@ export default defineConfig({ { text: 'FAQ', items: sidebarFAQ }, { text: 'Architecture, Structures, Design, etc', items: sidebarArchitectureAndStructures }, { text: 'How To', items: sidebarHowTo }, - { text: 'API', items: sidebarApi }, + { text: 'API Tools', items: sidebarApi }, { text: 'Components', items: sidebarComponents }, { text: 'Components/on-demand', items: onDemandSidebarComponents }, { text: 'Enums', items: sidebarEnums }, diff --git a/docs/pages/docs/architecture-and-structures/Backend API communication/Readme.md b/docs/pages/docs/architecture-and-structures/Backend API communication/Readme.md new file mode 100644 index 000000000..6d97178ae --- /dev/null +++ b/docs/pages/docs/architecture-and-structures/Backend API communication/Readme.md @@ -0,0 +1,25 @@ +# Backend API Communication + +## Webitel SDK Endpoints + +## Raw Endpoints + +## Тонкощі роботи з ендпоінтами + +### Falsy values + +API Gateway на бекенді налаштований так, що не вертає полів, які мають falsy значення. + +А нам-то ці поля потрібні! + +Отже, ми маємо в ці поля сетати дефолтні для них значення. + +### Чому одночасно Webitel SDK та Raw Endpoints? + +Так склалось історично, але, сподіваюсь, колись це пройде і будуть тільки Webitel SDK ендпоінти. + +## WebSocket + +## А як додать апішку-то? + +А це описано ось [тут](../../how-to/add-a-REST-API-module/Readme.md) diff --git a/docs/pages/docs/how-to/add-a-REST-API-module/Readme.md b/docs/pages/docs/how-to/add-a-REST-API-module/Readme.md new file mode 100644 index 000000000..f01306457 --- /dev/null +++ b/docs/pages/docs/how-to/add-a-REST-API-module/Readme.md @@ -0,0 +1,44 @@ +# Adding REST API module + +## Prerequisites + +Говоримо про практику? - Не забуваєм про теорію. + +[Backend API Communication](../../architecture-and-structures/Backend%20API%20communication/Readme.md) + +А також пасувало би почитати про тулзи, які ми використовуватимемо: + +- [Axios](https://axios-http.com/docs/intro) +- Наша обгортка над axios: [api/axios](../../../webitel-ui/api/axios/Readme.md) +- Набір вже готових, дефолтних клієнтів-модулів для певних ендпоінтів: [api/clients](../../../webitel-ui/api/clients/Readme.md) +- Дефолтні, реюзабельні штуки для роботи з апі: [api/defaults](../../../webitel-ui/api/defaults/Readme.md) +- axios interceptors: [api/interceptors](../../../webitel-ui/api/interceptors/Readme.md) +- Трансформери для даних: [api/transformers](../../../webitel-ui/api/transformers/Readme.md) + +## Як додати Webitel SDK Endpoint модуль? + +Піддивіться у souce code якогось з `api/clients` 🙂 + +### Тонкощі + +#### Як знайти необхідну мені ApiFactory, та її методи? + +**Щодо назви**, ApiFactory - вона має бути така сама, як і у Webitel Swagger. + +**Щодо методів**, Webitel SDK на TypeScript, тож IDE має підказати вам, які там є методи. + +Зазвичай це: +- `getList` це `search...`, +- `get` це `read...`, +- `add` це `create...`, +- `update` це `update...`, +- `patch` це `patch...`, +- `delete` це `delete...`. + +Де замість `...` - назва сутності, з якою ми працюємо. + +## Як додати Raw Endpoint модуль? +Піддивіться у souce code якогось з `api/clients` 🙂 + +### Тонкощі +Тут - немає. Берете, формуєте `url`'ку, викликаєте http метод, обробляєте відповідь.