ページ内ナビ
概要
Rswagは、rspec-railsのrequest specをOpenAPIベースのDSLで拡張し、APIの動作検証とドキュメント生成を同じspecから行うtoolkitです。rswag-specsでrequest/responseを検証し、OpenAPI JSON/YAMLを生成し、rswag-apiとrswag-uiで仕様書とSwagger UIをRails applicationから公開できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
request specをOpenAPI DSLとして記述して実行する
path、HTTP method、parameter、response、schemaをRSpecのexampleとして定義し、run_test!で実際のrequestを送ってstatusやresponse bodyを検証できます。
出典:[2]
向いている用途
Rails APIのintegration testと利用者向けAPI documentを同じ定義から保守したい場合に向く
既にRSpec request specを使うRails APIで、testとOpenAPI documentの二重管理を減らし、実際のresponse schema検証まで同じworkflowへ組み込みたい場合に向きます。
出典:[2]
導入前の確認
生成仕様を公開contractとして扱うならspec変更のreview範囲を広げる
test DSLがそのままAPI documentのsourceになるため、parameterやresponse schemaの変更はtestだけでなく利用者向けcontractの変更にもなります。API compatibilityを含めてreviewします。
出典:[2]
参考にした公式資料
- [1]rswag/rswag repository(2026-09-30)
- [2]Rswag 2.17.0 README(2026-09-30)
- [3]Rswag 2.17.0 gemspec(2026-09-30)
- [4]Rswag Specs 2.17.0 gemspec(2026-09-30)
- [5]Rswag 2.17.0 release(2026-09-30)
- [6]Rswag MIT license(2026-09-30)
編集部からの補足
API testとOpenAPI documentを同じspecから生成できるため、Rails APIで二重管理を減らせます。一方でspec変更が公開contractにも影響するため、testのreviewだけでなくAPI互換性の観点を含める運用が重要です。
3ステップで試す
- 1
Rswag 2.17.0を追加
既存Rails applicationへstable版を追加します。
bundle add rswag --version 2.17.0 - 2
Rswagの初期設定を生成
OpenAPI helper、API endpoint、Swagger UIなどの初期設定を生成します。
rails g rswag:install - 3
OpenAPI documentを生成
request specを作成・実行した後、spec metadataからOpenAPI JSON/YAMLを生成します。
bundle exec rake rswag:specs:swaggerize
成長
成長の推移 · 直近30日
2,202 Stars
推移データを蓄積中です。
Built with
カテゴリとタグ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Firecrawl186,787 Stars
共通タグ 1件 · 共通カテゴリ 1件
Web検索・scrape・crawl・browser interactionをLLM-ready dataへ変換するAPI
TypeScript - Axios109,248 Stars
共通タグ 1件 · 共通カテゴリ 1件
browser・Node.jsでinterceptor・adapter・timeout・cancellationを共通化するPromise-based HTTP client
JavaScript - Playwright96,900 Stars
共通タグ 1件 · 共通カテゴリ 1件
Chromium・Firefox・WebKitを一つのAPI/Test runnerで操作し、E2E test・script・agent browser automationを実行する
TypeScript - Flask74,803 Stars
共通タグ 1件 · 共通カテゴリ 1件
PythonでURLルーティング・request処理・Jinja templateを組み立てる軽量WSGIフレームワーク
Python - Jest45,464 Stars
共通タグ 1件 · 共通カテゴリ 1件
assertion・mock・watch・snapshot・worker isolationを一つのCLIへまとめるJavaScript testing framework
TypeScript - Kong Gateway44,224 Stars
共通タグ 1件 · 共通カテゴリ 1件
APIのルーティング・認証・流量制御を共通のゲートウェイにまとめる
Lua
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。