1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rspec request-specからOpenAPI 仕様ドキュメント自動生成(rspec-openapi)

Posted at

はじめに

案件で実装した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をインポートする

以下のようにして、参照することができる。
スクリーンショット 2022-07-02 13.33.55.png

スクリーンショット 2022-07-02 13.34.06.png

#注意

Aithorization:トークン等の情報までは、乗せることができないため編集が必要。

#終わりに
Swaggerのような仕様書を位置から用意するのはかなり骨が折れる(拒絶)と思います。       
今回は、requestsのテストを書いていれば自動で生成してくれるため、特別必要な工数が少ないところが非常にいいなと思いました。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?