Swagger UIは、OpenAPI/Swagger仕様ファイルからブラウザー上で操作可能なAPIドキュメントを生成します。
swaggo/swag
Goのソースコードコメントに記述したアノテーションからSwagger 2.0のAPIドキュメントを生成するツールです。
- スター
- 13,048
- フォーク
- 1,492
- 未解決の Issue
- 482
- 最終コミット
- 先月
これは何?
Swagは、ハンドラー関数やstruct定義など、Goコード内の所定の形式で書かれたコメントを解析し、swagger.json、swagger.yaml、docs.goとしてSwagger 2.0のドキュメントを生成します。開発者はハンドラーの上に@Summary、@Param、@Success、@Routerなどのアノテーションを記述し、swag initを実行して仕様を再生成します。
生成した出力は、Gin、Echo、Fiber、net/http、chi、Hertzなど、よく使われるGoのWebフレームワーク向けのミドルウェアを通じてSwagger UIで公開できます。structのフィールドには、サンプル、バリデーション制約、enum、カスタム型の上書き設定をタグで指定できます。また、アノテーションコメントを整形するswag fmtコマンドも備えています。
主な機能
- 01Swagger 2.0の仕様をJSON、YAML、Goのdocsパッケージとして生成します。
- 02Goのハンドラー関数の上に記述したコメントアノテーションでエンドポイントをドキュメント化します。
- 03リクエストパラメーター、レスポンス、ヘッダー、セキュリティ定義、タグに対応します。
- 04structフィールドのタグから、サンプル、バリデーションルール、enumを読み取ります。
- 05Gin、Echo、Fiber、net/http、chiなどのフレームワーク向けミドルウェアを提供します。
- 06アノテーションコメントを整形するswag fmtコマンドを備えています。
ユースケース
- OpenAPIファイルを別途手作業で管理せずに、Go製RESTサービスのAPIドキュメントを生成する。
- GinやEchoのバックエンドで、インタラクティブなSwagger UIページを公開する。
- CIビルド時に、APIドキュメントをハンドラーコードと同期させる。
クイックスタート
- 1
Goでswag CLIをインストールする
go install github.com/swaggo/swag/cmd/swag@latest - 2
GoのソースコードのコメントにAPIアノテーションを追加する
- 3
main.goを含むプロジェクトのルートでswag initを実行し、ドキュメントを生成する
swag init
使う前に知っておきたいこと
- 生成できるのはSwagger 2.0のドキュメントのみで、OpenAPI 3.xには対応していません。
- Goのコメントにアノテーションを記述する必要があり、変更後はドキュメントを再生成する必要があります。
トピック
よくある質問
- swag とは?
- Goのソースコードコメントに記述したアノテーションからSwagger 2.0のAPIドキュメントを生成するツールです。 Swagは、ハンドラー関数やstruct定義など、Goコード内の所定の形式で書かれたコメントを解析し、swagger.json、swagger.yaml、docs.goとしてSwagger 2.0のドキュメントを生成します。開発者はハンドラーの上に@Summary、@Param、@Success、@Routerなどのアノテーションを記述し、swag initを実行して仕様を再生成します。
- swag は無料で使えますか?ライセンスは?
- swag は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- swag は今もメンテナンスされていますか?
- 半年以内に更新あり。swag の最終コミットは 2026年9月30日 です。
- swag は何に使えますか?
- OpenAPIファイルを別途手作業で管理せずに、Go製RESTサービスのAPIドキュメントを生成する。 GinやEchoのバックエンドで、インタラクティブなSwagger UIページを公開する。 CIビルド時に、APIドキュメントをハンドラーコードと同期させる。
- swag のインストール方法は?
- Goでswag CLIをインストールする: go install github.com/swaggo/swag/cmd/swag@latest GoのソースコードのコメントにAPIアノテーションを追加する main.goを含むプロジェクトのルートでswag initを実行し、ドキュメントを生成する: swag init
- swag はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/swaggo/swag
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
インタラクティブなAPIリファレンス、オフラインファーストのAPIクライアント、多数のWebフレームワーク向け連携機能を備えたオープンソースのOpenAPI/Swaggerツールキット。
OpenAPI 3.0/3.1仕様から、サーバーのひな形やAPIクライアント、モデルを生成するGo製CLIツール兼ライブラリ。
コードのアノテーションやJAX-RS REST APIからOpenAPI仕様を生成するJavaライブラリ。OpenAPI 3.xに対応。
Django REST Framework APIから、実際のSwagger/OpenAPI 2.0仕様書とインタラクティブなドキュメントを生成します。
OpenAPI仕様から多くの言語・フレームワーク向けのAPIクライアントSDK、サーバースタブ、ドキュメントを生成