LoginSignup
0
0

More than 3 years have passed since last update.

RailsでのAPI開発基礎のメモ

Last updated at Posted at 2019-05-11

はじめに

RailsでAPIを作成する機会があったので忘れないように
簡単にまとめようかと思います。

1、ルーティングの記述

routes.rb
post 'api/sampleApi' => 'api#sampleApi'

POSTでapiのアクションを叩くルーティングを設定。

2、コントローラの記述

各処理で行っていることをコメントで以下に記述しました。

api_controller.rb
class ApiController < ApplicationController
  # JSONの読み込み
  require 'json'

  # CSRFチェックで引っかからないよう記述
  protect_from_forgery except: [:sampleApi]

  def sampleApi
    # 正常処理時のステータス200をセット
    rs = {:code => 200}

    begin
      # JSONのパース
      json_request = JSON.parse(request.body.read)

      # 要素へのアクセス(今回はkeyがparamsの値が必要だとする)
      parameters = json_request["params"]

      # 以下にAPIで行う処理を書く
      sample_user = User.new(parameters)
      sample_user.save!

    rescue => e
      # エラーが発生した場合はステータス500とエラーメッセージをセット
      rs = {:code => 500, :error => e.message}
    end

    # JSONでレスポンスを返す
    render json: rs
  end

end

3、補足:CSRF(クロスサイトリクエストフォージェリ)とは

Webアプリケーションの脆弱性、または脆弱性を狙った攻撃の一種。
本来拒否すべき他のサイトからのリクエストを受信・処理してしまう。
参考:https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/csrf.html

RailsはCSRFをdefaultでチェックしてくれるのでここでは外す必要があります。

以上です。

0
0
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
0
0