我有一个 Rails 4 项目,它使用 Grape 作为 API 的东西,我想做一些自定义验证,如葡萄文档中所述。我想知道我应该将我的自定义验证代码放在哪里(比如在 lib 文件中),我是否需要在我的 API 文件中包含或需要一些东西才能使用它?
该文档告诉您创建一个类,但如果我必须编写许多自定义验证,我对文件结构感到困惑。
我有一个 Rails 4 项目,它使用 Grape 作为 API 的东西,我想做一些自定义验证,如葡萄文档中所述。我想知道我应该将我的自定义验证代码放在哪里(比如在 lib 文件中),我是否需要在我的 API 文件中包含或需要一些东西才能使用它?
该文档告诉您创建一个类,但如果我必须编写许多自定义验证,我对文件结构感到困惑。
上次我使用 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
到自动加载程序以防止必须手动要求。