はじめに
案件で実装したAPIの仕様書が急遽必要になり、rspec-openapiというrailsのrequestテストからOpenAPI 仕様のドキュメントを出力することができるGemがありました。
便利だと思ったので、使用方法をまとめておこうと思いました。
開発環境
ruby '3.0.0'
Rails 6.0.3.4
前提
- rspecでテストを実施している
- requestのテストを書いている
使用方法
1. Gem('rspec-openapi')のインストール
request.rb
group :test do
gem "rspec-rails"
gem "rspec-openapi" # 今回追加
end
bundle install 実行
2. OPENAPI=1 rspec を実行
環境変数等を設定する必要はなく、以下コマンドを実行
ターミナル
OPENAPI=1 rspec
OPENAPI=1 rspec ファイルパス # 指定したファイルのみ実行
※docker の場合はコンテナ内で実行
ターミナル
##入りたいコンテナ名を確認
docker ps
##コンテナに入る
docker exec -it コンテナ名 /bin/bash
##コンテナ内で実行
OPENAPI=1 rspec
実行後、ルートディレクトリにdoc/open.yaml ファイルが作成される。
3. Swaggaer Editer で自動生成されたopen.yamlをインポートする
#注意
Aithorization:トークン等の情報までは、乗せることができないため編集が必要。
#終わりに
Swaggerのような仕様書を位置から用意するのはかなり骨が折れる(拒絶)と思います。
今回は、requestsのテストを書いていれば自動で生成してくれるため、特別必要な工数が少ないところが非常にいいなと思いました。
参考