うなすけとあれこれ

2016年12月25日

やぎすけ Advent Calendar 24日目 status codeの修正

pull request

やぎすけ Advent Calendar

やぎすけ Advent Calendar 2016 - Adventar

24日目です。遅れましたがやっていきましょう。

serachにparamsがない場合

まず最初に必須パラメータのnameがあるかチェック、ない場合はエラーなjsonを返却。

やぎ小屋 | Ruby on RailsでつくってみるAPI(2日目)

とのことですが、エラーの場合はHTTP status codeもそれ相応のものを返してやったほうがいいと思うので、そうします。

この場合だと400が適当でしょうか。

List of HTTP status codes - Wikipedia

なので、このように書き替えます。

def search
  if params[:name].blank?
    render status: 400,  json: [{"error": "100", "msg": "必須パラメーターがありません", "required": {"key": "name"}}]
  else 
    @result = Character.where("name like ?", "%" + params[:name] + "%")

    if @result.empty?
      @result = Character.where("phonetic like ?", "%" + params[:name] + "%")
    end

    render json: @result
  end
end

Return 400 if params is not present · unasuke/imas_api_rails@07185c5

2016年12月25日