1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-swagger-codegen

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Swagger Codegen

Логотип Swagger Codegen

Это проект Swagger Codegen, который позволяет автоматически генерировать клиентские библиотеки API (SDK), шаблоны сервера и документацию на основе OpenAPI Spec.

💚 Если вы хотите внести свой вклад, пожалуйста, обратитесь к руководству и списку открытых задач.💚

📔 Для получения дополнительной информации обратитесь к странице Wiki и часто задаваемым вопросам 📔

⚠️ Если описание OpenAPI или файл Swagger получен из непроверенного источника, убедитесь, что вы проверили артефакт перед использованием Swagger Codegen для генерации клиентского API, шаблона сервера или документации, так как может произойти внедрение кода. ⚠️

Версионирование

⚠️ данная документация относится к версии 2.X, проверьте здесь для версий 3.X.

Оба варианта версий 2.X и 3.X Swagger Codegen доступны и поддерживаются независимо.

ЗАМЕЧАНИЯ:

  • Версии 2.X (io.swagger) и 3.X (io.swagger.codegen.v3) имеют разные идентификаторы групп.
  • OpenAPI 3.0.X поддерживается только начиная с версии 3.X.

Для полной информации о версионировании, пожалуйста, обратитесь к документации по версионированию.## Поддерживаемые языки и фреймворки

В настоящее время поддерживаются следующие языки и фреймворки:

  • Клиенты API: ActionScript, Ada, Apex, Bash, C# (.NET 2.0, 3.5 или более поздняя версия), C++ (cpprest, Qt5, Tizen), Clojure, Dart, Elixir, Elm, Eiffel, Erlang, Go, Groovy, Haskell (http-client, Servant), Java (Jersey1.x, Jersey2.x, OkHttp, Retrofit1.x, Retrofit2.x, Feign, RestTemplate, RESTEasy, Vertx, Google API Client Library for Java, Rest-assured), Kotlin, Lua, Node.js (ES5, ES6, AngularJS с аннотациями Google Closure Compiler), Objective-C, Perl, PHP, PowerShell, Python, R, Ruby, Rust (rust, rust-server), Scala (akka, http4s, swagger-async-httpclient), Swift (2.x, 3.x, 4.x, 5.x), TypeScript (Angular1.x, Angular2.x, Fetch, jQuery, Node)
  • Серверные stubs: Ada, C# (ASP.NET Core, NancyFx), C++ (Pistache, Restbed), Erlang, Go, Haskell (Servant), Java (MSF4J, Spring, Undertow, JAX-RS: CDI, CXF, Inflector, RestEasy, Play Framework, PKMST), Kotlin, PHP (Lumen, Slim, Silex, Symfony, Zend Expressive), Python (Flask), NodeJS, Ruby (Sinatra, Rails5), Rust (rust-server), Scala (Finch, Lagom, Scalatra)
  • Генераторы документации API: HTML, Confluence Wiki
  • Файлы конфигурации: Apache2
  • Прочее: JMeter

Просмотрите 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. В этом случае ознакомьтесь с инструкциями по выборочной генерации.

Расширенная настройка генератораСуществуют различные аспекты настройки генератора кода, кроме создания или модификации шаблонов. Каждый язык имеет поддерживающий конфигурационный файл для обработки различных типовых отображений или использования собственных моделей. Для получения дополнительной информации ознакомьтесь с документацией по расширенной конфигурации.### Валидация вашего OpenAPI спецификации

У вас есть несколько вариантов. Самый простой — использовать наш онлайн валидатор, который не только позволит вам проверить вашу спецификацию, но и с помощью флага отладки покажет, что не так со спецификацией. Например, ознакомьтесь с Swagger Validator.

Если вы хотите иметь валидацию непосредственно на вашем собственном компьютере, то Spectral является отличным вариантом.

Генерация динамической HTML документации API

Для этого используйте флаг -l dynamic-html при чтении файла спецификации. Это создает HTML документацию, доступную как одностраничное приложение с использованием AJAX. Чтобы просмотреть документацию:

cd samples/dynamic-html/
npm install
node .

Что запускает сервер node.js, чтобы AJAX-запросы могли выполняться.

Генерация статической HTML документации API

Для этого используйте флаг -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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-swagger-codegen.git
git@api.gitlife.ru:oschina-mirror/mirrors-swagger-codegen.git
oschina-mirror
mirrors-swagger-codegen
mirrors-swagger-codegen
master