Авто-генерация типизированных API контроллеров на клиенте из Swagger

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет! Меня зовут Данил, я Frontend разработчик, живу в Питере, работаю в компании Unistory. Решил рассказать на Хабре, как автоматизировать один нудный процесс.

Проблематика

Зачастую нам приходится описывать запросы или переписывать уже имеющиеся ввиду изменения каких-то DTO (Data Transfer Object) или параметров у запросов. Это вполне естественно для разработки, но часто оказывается скучным и однотипным процессом, не требующим размышлений или особых навыков. Как следствие, его автоматизация кажется отличным выходом.

Решение

Автоматизация генерации API-контроллеров на клиенте возможна с помощью инструментов openapi-merge-cli и swagger-typescript-api. Они позволяют генерировать код на основе OpenAPI (Swagger) спецификации, минимизируя ручной труд и снижая вероятность ошибок.

Когда это уместно?

Данное решение отлично подходит для быстрого старта в проектах уровня MVP (Minimum Viable Product) или PoC (Proof of Concept). Однако, при разработке масштабируемого продукта с гибкой архитектурой оно может накладывать определенные ограничения, и в таких случаях стоит рассмотреть более детальную кастомизацию API-клиента.

Начало работы

Установка зависимостей:

npm i --save-dev openapi-merge-cli swagger-typescript-api

Добавление скриптов:

"merge-openapi": "npx openapi-merge-cli --config ./swagger/openapi.config.json",
"codegen:api": "node codegen/codegen.js",
"codegen": "npm run merge-openapi && npm run codegen:api",

Структура проекта:

						
Источник: https://habr.com/ru/articles/893150/


Интересные статьи

Интересные статьи

Привет! Меня зовут Максим Гарбарт, я тестировщик компании Битрикс24. Моя работа связана с проверкой одного из важнейших компонентов системы – сервиса авторизации. Для пользователей это, как правило, л...
Создадим прототип SPA в Bitrix без использования популярных JS фреймворков и библиотек, все будет сделано средставами Bitrix.И самое главное без потери серверного рендеринга и SEO страниц.ПогналиВсего...
Представьте 2 колонии байбаков. Обычно это миролюбивые животные, которые живут дружными семьями, но только не в тех ситуациях, когда встает вопрос о занимаемой территории. Подобное может произойти меж...
Привет! Я Саша — продуктовый дизайнер с 6+ летним опытом в продуктах разной сложности. В этой статье расскажу о своём опыте поиска респондентов для качественных исследований (интервью, тестирование).П...
Высокие технологии давно помогают банкам собирать долги по кредитам, но всегда есть что улучшить. В 2020 году запустился проектный офис Collection, а я стал проджектом по взысканию. На старте был зооп...