Цей клієнт дозволяє працювати із API на сервері зі розкладами.
Клієнт автозгенеровано цією Java програмою за допомогою цієї node обгортки.
Автогенерація є можливою завдяки архітектурі серверної програми, яка використовує стандарт для API, OpenAPI
.
Приклад використання клієнта тут: src/example.ts
Після генерації створюється чотири TypeScript файли:
- Api. Цей файл містить функції та класи, які можна використовувати для надсилання запитів до сервера. Він має дві різні реалізації для різних стилів програмування: класи для ООП та функції для функц. програмування. Він також включає моделі об'єктів даних, що надсилаються до сервера або отримуються з нього.
- Base. Цей файл оголошує дві речі: шлях до серверної програми та базовий клас для всіх класів API. Базовий клас приймає конфігурацію, яка вказується перед використанням API.
- Common. У цьому файлі зберігаються невеликі утиліти, які використовуються всередині клієнта.
- Configuration. Цей файл визначає параметри конфігурації для клієнта. Він надає інтерфейс для вказівки ключа API, імені користувача, пароля, токену доступу, базового шляху та інших параметрів, необхідних для здійснення запитів до API.
Для того, щоб використовувати клієнт, необхідно імпортувати клас або функцію API з файлу Api
, а також клас конфігурації з файлу Configuration
. Для здійснення http-запитів клієнт використовує бібліотеку axios
, яка працює як в середовищі браузера, так і в node середовищі.
Щоб запустити тести, необхідно заповнити .env
згідно зі .env.example
Всього ендпойнтів: ~10
Покрито тестами:
- /api/Teacher
Клієнт протестовано у браузері та в мобільному застосунку, написаному на React Native. React Native потребує встановлення окремої бібліотеки задля належної обробки URL об'єктів, react-native-url-polyfill.
Задля того, щоб клієнт встановлювався у інші проекти, його було перетворено у пакунок наступним чином:
- Складено
index
файл – окремий файл, що експортує лише окремі складові клієнта, необхідні для його використання в інших проектах. - У
package.json
додано поляmain
таexports
. Вони вказують наindex
файл. - Скомпільовано первинний код. Результат розміщено в директорії
dist
Встановлюється клієнт у веб проджект цією командою:
npm install Seagullie/schedule-server-api-client
Щоб згенерувати клієнт, було використано цю команду:
npx openapi-generator-cli generate -i path/to/swagger.json -g typescript-axios -o ./api-client-axios
OpenApi Generator
https://github.com/OpenAPITools/openapi-generator
OpenApi
https://www.openapis.org/what-is-openapi
react-native-url-polyfill
https://github.com/charpeni/react-native-url-polyfill
Пакунки. Точки входу
https://nodejs.org/api/packages.html#package-entry-points
Поле exports
у package.json
https://webpack.js.org/guides/package-exports/
Поле main
у package.json