インタラクティブなAPIリファレンス、オフラインファーストのAPIクライアント、多数のWebフレームワーク向け連携機能を備えたオープンソースのOpenAPI/Swaggerツールキット。
swagger-api/swagger-codegen
OpenAPI/Swagger定義からAPIクライアントSDK、サーバースタブ、HTMLドキュメントを生成するコマンドラインツール。
- スター
- 17,793
- フォーク
- 5,948
- 未解決の Issue
- 3,442
- 最終コミット
- 昨日
これは何?
Swagger Codegenは、OpenAPIまたはSwagger仕様を読み込み、APIクライアントライブラリ、サーバースタブ、APIドキュメントを生成するテンプレート駆動型のコードジェネレーターです。チームで使う言語ごとに、リクエストモデルやエンドポイントのラッパーを手書きする必要がなくなります。
Java、C#、Go、Python、TypeScript、PHP、Swift、Kotlin、Rustなど多数のクライアント向けターゲットに対応しており、Spring、ASP.NET Core、Flask、Railsなどのフレームワーク向けサーバースタブも生成できます。ドキュメントは静的なHTMLファイル、または動的なシングルページHTMLアプリとして出力できます。生成はCLI JAR、Docker、またはMavenやGradleのワークフロー連携から実行できます。
プロジェクトはMavenのgroup IDが異なる2.X系と3.X系に分かれており、OpenAPI 3.0に対応しているのは3.X系のみです。テンプレートをカスタマイズすれば、出力を調整したり独自のターゲットを追加したりできます。
主な機能
- 01OpenAPIまたはSwaggerの仕様から、数十種類の言語やフレームワーク向けにAPIクライアントを生成します。
- 02Spring、ASP.NET Core、Flask、Railsなどのフレームワーク向けにサーバースタブを生成します。
- 03静的または動的なHTML形式のAPIドキュメントを生成します。
- 04テンプレートをカスタマイズして、出力を変更したり新しいジェネレーターを追加したりできます。
- 05CLI、Docker、またはMavenやGradleのワークフローから実行できます。
ユースケース
- 複数のクライアントチームが利用する社内REST API向けに、型付きSDKを生成する。
- 仕様を先に定めるAPI設計から、サーバースタブのひな形を作成する。
- OpenAPIファイルからHTML形式のリファレンスドキュメントを公開する。
- サンプルのpetstoreクライアントを作成して、生成されるコードの構成を確認する。
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/swagger-api/swagger-codegen - 2
プロジェクトディレクトリに移動する
cd swagger-codegen - 3
Mavenでプロジェクトをビルドする
mvn clean package - 4
Petstoreの仕様からPHPクライアントを生成する
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i https://petstore.swagger.io/v2/swagger.json -l php -o /var/tmp/php_api_client
使う前に知っておきたいこと
- JavaとMavenを使ってソースからビルドする必要があるため、セットアップに手間がかかります。
- バージョン2.Xと3.Xは異なるgroup IDで個別にメンテナンスされているため、必要な系列を確認してください。
トピック
よくある質問
- swagger-codegen とは?
- OpenAPI/Swagger定義からAPIクライアントSDK、サーバースタブ、HTMLドキュメントを生成するコマンドラインツール。 Swagger Codegenは、OpenAPIまたはSwagger仕様を読み込み、APIクライアントライブラリ、サーバースタブ、APIドキュメントを生成するテンプレート駆動型のコードジェネレーターです。チームで使う言語ごとに、リクエストモデルやエンドポイントのラッパーを手書きする必要がなくなります。
- swagger-codegen は無料で使えますか?ライセンスは?
- swagger-codegen は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- swagger-codegen は今もメンテナンスされていますか?
- 活発にメンテナンス中。swagger-codegen の最終コミットは 2026年10月22日 です。
- swagger-codegen は何に使えますか?
- 複数のクライアントチームが利用する社内REST API向けに、型付きSDKを生成する。 仕様を先に定めるAPI設計から、サーバースタブのひな形を作成する。 OpenAPIファイルからHTML形式のリファレンスドキュメントを公開する。 サンプルのpetstoreクライアントを作成して、生成されるコードの構成を確認する。
- swagger-codegen のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/swagger-api/swagger-codegen プロジェクトディレクトリに移動する: cd swagger-codegen Mavenでプロジェクトをビルドする: mvn clean package Petstoreの仕様からPHPクライアントを生成する: java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate -i https://petstore.swagger.io/v2/swagger.json -l php -o /var/tmp/php_api_client
- swagger-codegen はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/swagger-api/swagger-codegen
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Swagger UIは、OpenAPI/Swagger仕様ファイルからブラウザー上で操作可能なAPIドキュメントを生成します。
OpenAPI仕様から多くの言語・フレームワーク向けのAPIクライアントSDK、サーバースタブ、ドキュメントを生成
Goサービス向けに、RESTfulなJSON HTTP呼び出しをgRPCリクエストへ変換するリバースプロキシサーバーを生成するprotocプラグイン。
OpenAPI、Swagger、AsyncAPI、GraphQLの定義から、レスポンシブな3ペイン構成のAPIリファレンスサイトを生成するオープンソースツール。
コレクションをローカルのプレーンテキストファイルで管理する、PostmanやInsomniaに代わるオープンソースのAPIクライアント。