3

API に Grape を使用する Rails 4 プロジェクトがあります。Grape のドキュメントで説明されているように、いくつかのカスタム検証を行いたいと考えています。カスタム検証コード (lib ファイルなど) をどこに配置すればよいかを知りたいのですが、API ファイル内でそれを使用するために何かを含めるか要求する必要がありますか?

ドキュメントではクラスを作成するように指示されていますが、多くのカスタム検証を作成する必要がある場合、ファイル構造について混乱しています。

4

1 に答える 1

3

前回 Grape を使用したとき、lib にカスタム検証を追加し、それらを使用するすべての API クラスにそれらを要求しました。例えば:

lib/api/validations/minimum_value.rb

class AlphaNumeric < Grape::Validations::Validator
  def validate_param!(attr_name, params)
    unless params[attr_name] =~ /^[[:alnum:]]+$/
      raise Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: "must consist of alpha-numeric characters"
    end
  end
end

アプリ/api/twitter.rb

class Twitter::API < Grape::API
  require_relative '../../lib/api/validations/minimum_value'

もちろん、手動で要求する必要がないように、オートローダーに追加することもできます。lib/api/validations

于 2014-09-18T05:35:34.600 に答える