Rails API를 구현하기 위해 Rails 프로젝트에 Grape를 마운트 중입니다.포도에서 특정 작업을 처리하기 전에 필터를 처리하는 방법은 무엇입니까?
이제 일부 종단점에는 인증이 필요한 작업과 인증이 필요없는 작업이 있습니다. 당신이 볼 수 있듯이, password/forget
을 제외한 모든 작업은 로그인 한/인증 할 수있는 사용자가 필요로 지금
module Backend
module V1
class Users < Grape::API
include Backend::V1::Defaults
before { authenticate! }
resource :users do
desc "Return a user"
params do
requires :id, type: Integer, desc: 'User id'
end
get ':id' do
UsersService::Fetch.new(current_user,params).call
end
desc "Update a user"
params do
requires :id, type: Integer, desc: 'User id'
requires :display_name, type: String, desc: 'Display name'
requires :email, type: String, desc: 'Email'
end
post ':id' do
UsersService::Save.new(current_user,params).call
end
desc "Reset user password"
params do
requires :old_password, type: String, desc: 'old password'
requires :password, type: String, desc: 'new password'
end
post 'password/reset' do
PasswordService::Reset.new(current_user,params).call
end
desc "Forget password"
params do
requires :email, type: String
end
post 'password/forget' do
PasswordService::Forget.new(current_user,params).call
end
end
end
end
end
: 예로서
내가 좋아하는 뭔가를 보이는users
엔드 포인트가 있습니다. 새로운 종단점을 만드는 것도 의미가 없지만
passwords
라고 말하면서
password/forget
을 논리적으로 말하면이 종단점은 사용자 리소스와 관련이 있어야합니다.
포도와 함께 문제가 before
필터에는 except, only
과 같은 옵션이 없습니다. 특정 옵션에 필터를 적용 할 수 있습니다.
대개 어떻게 그런 케이스를 깨끗하게 처리합니까?
이 upvoted .. 지금은 허용 대답보다이처럼 – fabriciofreitag