Ruby on Rails APIモードにする方法

f:id:nkeke0:20210331103144p:plain

はじめに

既存のRuby on Railsで作成していたwebアプリケーションを、

フロントをVue.js、バックエンドをRailsとする為にAPIモードを使用しました。

当初Vue.jsを使う予定ではなかったのですが、開発途中で使用することになりましたので、APIモードにする方法方法を記載いたします。

 

【おすすめ】よくわかるRuby on Rails入門 オンライン講座

Ruby on RailsのアプリケーションをAPIモードに実装

まず、Vue.jsのダウンロード


./bin/rails webpacker:install:vue
 

config/application.rbApplicationクラス定義の冒頭に追加


config.api_only = true
 

Apiコントローラーを作成

app/controllers/ api_controller.rb
 
end
 

コントローラーの編集

app/controllers/api/v1配下にSampleControllerを配置し、Api::V1::SampleControllerのように記述


class Api::V1::SampleController < ApiController
before_action :set_employee, only: [:show]

def index
sample = Sample.all
render json: sample
end

def show
render json: @sample
end

private

def set_sample
@sample = Sample.find(params[:id])
end
end
 

API コントローラへのルーティングを追加


Rails.application.routes.draw do

# APIコントローラへのルーティング
namespace :api, {format: 'json'} do
namespace :v1 do
resources :sample, only: [:index, :show]
end
end
end
 

rails serverを立ち上げ、http://localhost:3000/api/v1/sampleにアクセスする。

モデルデータがJson形式で表示されていればOK

これでRailsAPIとしてバックエンドの役割を担ってもらえます。

 
参考