Это проект Swagger Codegen, который позволяет автоматически генерировать клиентские библиотеки API (SDK), шаблоны сервера и документацию на основе OpenAPI Spec.
💚 Если вы хотите внести свой вклад, пожалуйста, обратитесь к руководству и списку открытых задач.💚
📔 Для получения дополнительной информации обратитесь к странице Wiki и часто задаваемым вопросам 📔
⚠️ Если описание OpenAPI или файл Swagger получен из непроверенного источника, убедитесь, что вы проверили артефакт перед использованием Swagger Codegen для генерации клиентского API, шаблона сервера или документации, так как может произойти внедрение кода. ⚠️
⚠️ данная документация относится к версии 2.X, проверьте здесь для версий 3.X.
Оба варианта версий 2.X и 3.X Swagger Codegen доступны и поддерживаются независимо.
ЗАМЕЧАНИЯ:
io.swagger
) и 3.X (io.swagger.codegen.v3
) имеют разные идентификаторы групп.Для полной информации о версионировании, пожалуйста, обратитесь к документации по версионированию.## Поддерживаемые языки и фреймворки
В настоящее время поддерживаются следующие языки и фреймворки:
Просмотрите OpenAPI-Spec для дополнительной информации о проекте OpenAPI.
Спецификация OpenAPI прошла три редакции с момента своего создания в 2010 году. Текущие стабильные версии проекта Swagger Codegen имеют следующую совместимость со спецификацией OpenAPI:
Версия Swagger Codegen | Дата выпуска | Совместимость с Swagger / OpenAPI Spec | Примечания |
---|---|---|---|
3.0.69 (текущая стабильная) | 2025-06-18 | 1.0, 1.1, 1.2, 2.0, 3.0 | tag v3.0.69 |
2.4.45 (текущая стабильная) | 2025-06-08 | 1.0, 1.1, 1.2, 2.0 | tag v2.4.45 |
💁 Вот также краткий обзор того, что ждет вас впереди:
Версия Swagger Codegen | Дата выпуска | Совместимость с Swagger / OpenAPI Spec | Примечания |
---|---|---|---|
3.0.70-SNAPSHOT (текущая 3.0.0, будущий минорный выпуск) SNAPSHOT | TBD | 1.0, 1.1, 1.2, 2.0, 3.0 | Минорный выпуск |
2.4.46-SNAPSHOT (текущий master, будущий минорный выпуск) SNAPSHOT | TBD | 1.0, 1.1, 1.2, 2.0 | Минорный выпуск |
Для подробного разбора всех версий, пожалуйста, обратитесь к полному списку совместимости.
Чтобы приступить к работе с Swagger Codegen, ознакомьтесь со следующими руководствами и инструкциями:- Необходимые условия
Как только вы настроите свою среду, вы будете готовы начать генерацию клиентских и/или серверных приложений.
В качестве быстрого примера, чтобы сгенерировать клиент на PHP для https://petstore.swagger.io/v2/swagger.json, вы можете выполнить следующее:
git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen
mvn clean package
java -jar modules/swagger-codegenci/target/swagger-codegen-cli.jar generate \
-i https://petstore.swagger.io/v2/swagger.json \
-l php \
-o /var/tmp/php_api_client
Примечание: если вы используете Windows, замените последнюю команду на
java -jar modules\swagger-codegenci\target\swagger-codegen-cli.jar generate -i https://petstore.swagger.io/v2/swagger.json -l php -o c:\temp\php_api_client
Вы также можете скачать JAR (последняя версия) напрямую с maven.org
Чтобы получить список общих опций, доступных для использования, вы можете выполнить следующее:
java -jar modules/swagger-codegenci/target/swagger-codegen-cli.jar help generate
Чтобы получить список опций, специфичных для PHP (которые можно передать генератору с помощью конфигурационного файла через опцию -c
), выполните
java -jar modules/swagger-codegenci/target/swagger-codegen-cli.jar config-help -l php
Вы можете создать клиент против образца API petstore с помощью следующего:```sh ./bin/java-petstore.sh
(На Windows вместо этого выполните `.\bin\windows\java-petstore.bat`)
Это запустит генератор с помощью следующей команды:
```sh
java -jar modules/swagger-codegen/target/swagger-codegen-cli.jar generate \
-i https://petstore.swagger.io/v2/swagger.json \
-l java \
-o samples/client/petstore/java
с рядом опций. Вы можете получить эти опции с помощью команды help generate
(ниже приведены только частичные результаты):
НАЗВАНИЕ
swagger-codegen-cli generate - Генерация кода с использованием выбранного языка
```СИНТАКСИС
swagger-codegen-cli generate
[(-a <авторизация> | --auth <авторизация>)]
[--additional-properties <дополнительные свойства>...]
[--api-package <пакет api>] [--artifact-id <идентификатор артефакта>]
[--artifact-version <версия артефакта>]
[(-c <файл конфигурации> | --config <файл конфигурации>)]
[-D <системные свойства>...] [--git-repo-id <id репозитория git>]
[--git-user-id <id пользователя git>] [--group-id <id группы>]
[--http-user-agent <http user agent>]
(-i <файл спецификации> | --input-spec <файл спецификации>)
[--ignore-file-override <локация переопределения файла игнора>]
[--import-mappings <маппинг импортов>...]
[--instantiation-types <типы инстанцирования>...]
[--invoker-package <пакет вызова>]
(-l <язык> | --lang <язык>)
[--language-specific-primitives <специфические примитивы языка>...]
[--library <библиотека>] [--model-name-prefix <префикс имени модели>]
[--model-name-suffix <суффикс имени модели>]
[--model-package <пакет модели>]
[(-o <выходной каталог> | --output <выходной каталог>)]
[--release-note <заметка выпуска>] [--remove-operation-id-prefix]
[--reserved-words-mappings <маппинг зарезервированных слов>...]
[(-s | --skip-overwrite)]
[(-t <каталог шаблонов> | --template-dir <каталог шаблонов>)]
[--type-mappings <маппинг типов>...] [(-v | --verbose)]ПАРАМЕТРЫ
-a <авторизация>, --auth <авторизация>
добавляет заголовки авторизации при получении определений Swagger удаленно.
Передайте закодированную строку в формате имя:значение, разделённую запятой,
для нескольких значений
...... (результаты опущены)
-v, --verbose
режим подробного вывода
Вы можете затем скомпилировать и запустить клиент, а также выполнить юнит-тесты против него:
cd samples/client/petstore/java
mvn package
Примеры petstore также доступны для других языков:
./bin/android-petstore.sh
./bin/java-petstore.sh
./bin/objc-petstore.sh
Это так же просто — используйте флаг -i
, чтобы указать на сервер или файл.
🔧 Swagger Codegen предлагает множество гибкости для поддержки ваших предпочтений в генерации кода. Ознакомьтесь с документацией генераторов, которая знакомит вас с некоторыми возможностями и демонстрирует, как генерировать из локальных файлов и игнорировать форматы файлов.
Вы можете не захотеть генерировать все модели в вашем проекте. Также вы можете захотеть сгенерировать только один или два API. В этом случае ознакомьтесь с инструкциями по выборочной генерации.
У вас есть несколько вариантов. Самый простой — использовать наш онлайн валидатор, который не только позволит вам проверить вашу спецификацию, но и с помощью флага отладки покажет, что не так со спецификацией. Например, ознакомьтесь с Swagger Validator.
Если вы хотите иметь валидацию непосредственно на вашем собственном компьютере, то Spectral является отличным вариантом.
Для этого используйте флаг -l dynamic-html
при чтении файла спецификации. Это создает HTML документацию, доступную как одностраничное приложение с использованием AJAX. Чтобы просмотреть документацию:
cd samples/dynamic-html/
npm install
node .
Что запускает сервер node.js, чтобы AJAX-запросы могли выполняться.
Для этого используйте флаг -l html
при чтении файла спецификации. Это создает единственный простой HTML файл с встроенным CSS, который можно отправить как вложение электронной почты или загрузить с вашего файловой системы:
cd samples/html/
open index.html
```## Интеграция рабочего процесса
Возможно использовать Swagger Codegen непосредственно внутри вашего предпочитаемого CI/CD рабочего процесса для упрощения ваших требований к автоматическому генерированию. Ознакомьтесь с [интеграцией рабочих процессов](./docs/workflow-integration.md) для получения информации о наших опциях интеграции с Maven, Gradle и GitHub. 🚀
## Онлайн-генераторыЕсли вы не хотите запускать и хостить свой собственный экземпляр генерации кода, обратитесь к нашей информации о [онлайн-генераторах](./docs/online-generators.md).
## Вклад
Пожалуйста, обратитесь к этой [странице](https://github.com/swagger-api/swagger-codegen/blob/master/CONTRIBUTING.md)
## Команда разработчиков Swagger Codegen
Участники команды разработчиков Swagger Codegen — это вкладчики, регулярно делающие значительные вклады (обзоры проблем, исправление ошибок, улучшения и т.д.) в проект.
Участники команды разработчиков несут следующие обязанности:
- Предоставление руководства и направления другим пользователям
- Обзор запросов на слияние и проблем
- Улучшение генератора за счет улучшений, исправления ошибок или обновления документации
- Установка технического направления генератора
## Контакт по вопросам безопасности
Пожалуйста, сообщите о любых связанных с безопасностью проблемах или уязвимостях, отправив электронное письмо на [security@swagger.io](mailto:security@swagger.io), вместо использования публичного трекера проблем.
## Информация о лицензии для сгенерированного кода
Проект Swagger Codegen предназначен как преимущество для пользователей спецификации Swagger / Open API. Проект сам по себе имеет [лицензию](./LICENSE) как указано. Кроме того, пожалуйста, учтите следующие моменты:
- Включенные в этот проект шаблоны подчиняются [лицензии](./LICENSE).
- Сгенерированный код намеренно _не_ подчиняется лицензии родительского проекта.Когда код генерируется из этого проекта, он считается **AS IS** и принадлежит пользователю программного обеспечения. Нет гарантий — выраженных или подразумеваемых — для сгенерированного кода. Вы можете делать с ним что угодно, и после генерации код становится вашей ответственностью и подчиняется условиям лицензии, которые вы сочтете подходящими.
## Благодарность
💚💚💚 Мы хотели бы поблагодарить всех, кто внес вклад в Swagger Codegen, будь то в виде открытия проблем, исправления ошибок, [создания шаблонов](./docs/template-creators.md), или создания полезного [контента](./docs/public-content.md) для других. 💚💚💚
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )