- Web Engineer
- アウトバウンド営業
- Webエンジニア(経験者)
- Other occupations (18)
- Development
- Business
はじめに
今回は、RailsアプリケーションにSwaggerを用いてAPIドキュメントを導入する方法について解説します。
私自身はGraphQLで開発する機会が多く、これまでSwaggerを使うことがほとんどありませんでした。
そのため、今回初めてSwaggerを使ってみた経験を備忘録として残しておこうと思い、本記事を執筆することにしました。
rswagのインストール
今回は「rswag」というgemを使用します。
こちらはrspecで書いたテストファイルがそのままAPIドキュメントのスキーマになるという優れもので、スキーマと実装の乖離をなくすことができます。
以下をgemに追加します。
gem 'rswag-api'
gem 'rswag-ui'
group :development, :test do
gem 'rspec-rails'
gem 'rswag-specs'
end
初期設定
簡単のアプリで検証するためscaffoldを使用してユーザーのCRUD操作機能を追加します。
rails generate scaffold User name:string email:string --api
routes.rbに以下追記
resources :users
scaffoldで自動生成されたコントローラーは以下のようなコードになります。
class UsersController < ApplicationController
before_action :set_user, only: %i[ show update destroy ]
# GET /users
def index
@users = User.all
render json: @users
end
# GET /users/1
def show
render json: @user
end
# POST /users
def create
@user = User.new(user_params)
if @user.save
render json: @user, status: :created, location: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
# PATCH/PUT /users/1
def update
if @user.update(user_params)
render json: @user
else
render json: @user.errors, status: :unprocessable_entity
end
end
# DELETE /users/1
def destroy
@user.destroy!
end
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params.expect(:id))
end
# Only allow a list of trusted parameters through.
def user_params
params.expect(user: [ :name, :email ])
end
end
マイグレーションを実行してDBにusersテーブルを作成します
rails db:migrate
rspec上でドキュメント生成をするため、以下のgenerateコマンドを実行していきます。
rails g rspec:install
rails g rswag:api:install
rails g rswag:ui:install
RAILS_ENV=test rails g rswag:specs:installrails g rspec:install
rails g rswag:api:install
rails g rswag:ui:install
RAILS_ENV=test rails g rswag:specs:install
次にUsersControllerのスキーマ定義付specファイルを生成するため以下を実行します。
rails generate rspec:swagger UsersController
実行すると以下のようにスキーマの枠組みが自動生成されます。
便利ですね。
…
記事の続きは下のURLをクリック!
https://rightcode.co.jp/blogs/52706
エンジニア積極採用中です!
現在、WEBエンジニア、モバイルエンジニア、デザイナー、営業などを積極採用中です!
採用ページはこちら:https://rightcode.co.jp/recruit
社員の声や社風などを知りたい方はこちら:https://rightcode.co.jp/blogs?category=life
フリーランスエンジニア大募集中!
現在、「WEBエンジニア」「フロントエンジニア」「データサイエンティスト」など、様々な職種のフリーランスエンジニア様を募集中です。まずは以下よりお気軽にご応募ください!
採用ページはこちら:https://itanken.com/register
社長と一杯飲みながらお話しませんか?(転職者向け)
特設ページはこちら: https://rightcode.co.jp/gohan-sake-president-talk
もっとワクワクしたいあなたへ
現在、ライトコードでは「WEBエンジニア」「モバイルエンジニア」「ゲームエンジニア」、「デザイナー」「WEBディレクター」「営業」などを積極採用中です!
ライトコードは技術力に定評のある受託開発をメインにしているIT企業です。
有名WEBサービスやアプリの受託開発などの企画、開発案件が目白押しの状況です。
- もっと大きなことに挑戦したい!
- エンジニアとしてもっと成長したい!
- モダンな技術に触れたい!
現状に満足していない方は、まずは、エンジニアとしても第一線を走り続ける弊社代表と気軽にお話してみませんか?
ネット上では、ちょっとユルそうな会社に感じると思いますが(笑)、
実は技術力に定評があり、沢山の実績を残している会社ということをお伝えしたいと思っております。
- ライトコードの魅力を知っていただきたい!
- 社風や文化なども知っていただきたい!
- 技術に対して熱意のある方に入社していただきたい!
一度、【Wantedly内の弊社ページ】や【コーポレートサイト】をのぞいてみてください。
Wantedly:https://www.wantedly.com/companies/rightcode
コーポレート:https://rightcode.co.jp/