Skip to content

alexmegadrive/openapi-typegen-enhanced

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

openapi-typegen-enhanced - генерация моделей Typescript и запросов к API по Swagger схемам

Данный скрипт является надстройкой над библиотекой https://www.npmjs.com/package/openapi-typescript-codegen.

При генерации через исходную библиотеку напрямую без скрипта, возможны ошибки из-за некоторых неучтенных моментов (например пропуск генерации по схемам, содержащим определенные последовательности в названиях, или остутствие атрибута required в схемах, приводящее к поломке кода при замене моделей). Поэтому для прикладных задач был разработан этот скрипт, который решает эти моменты, выполняя замены по заданному набору правил (getModifiedData), и проставляя атрибут required на компонентах схемы (addRequiredKeys).

Скрипт позволяет через ту же команду производить повторную загрузку моделей в случае изменений на бэкенде (оригинальная библиотека не дает билдить в имеющуюся папку).

Использование

Для установки зависимостей выполните команду:

yarn

Либо:

npm i

Конфигурация расположена в файле getTestApi.js В конфигурации замените url на путь к JSON-у от Swagger-а, замените folderPath на путь к папке, по которой будут лежать ваши модели.

const url = "https://petstore.swagger.io/v2/swagger.json";
const folderPath = "src/models/TestApi/";
const swaggerFilePath = folderPath + "testApi.json";

Также замените пути до скрипта и до папки в package.json/, и измените само название файла запуска скрипта.

"scripts": {
    "typegen": "node ./getTestApi.js && npx openapi --input ./src/models/TestApi/testApi.json --output ./src/models/TestApi/ "
  },

Далее, запускайте скрипт командой:

yarn typegen

При запуске удалится папка со старыми моделями (при её наличии), далее библиотека создает папку src/models , в которой, в зависимости от вашей конфигурации, будут сами модели, API для них, и core файлы. Ознакомьтесь с конфигурацией здесь https://github.com/ferdikoomen/openapi-typescript-codegen.

Если в вашем проекте уже написаны запросы к API, и вам нужна только генерация типов, то добавьте к команде --exportServices false --exportCore false

Итоговый билд удобно декомпозирован по папкам для моделей/сервисов/ядра.

Папки скрипта и команду для запуска можно сразу переносить себе в проект и пользоваться.

Структура билда

About

OpenAPI Typescript Swagger generator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published