我正在学习如何使用rails制作和处理api调用。我正在使用Devise来处理我的用户身份验证/ sign_up等,但似乎在发布帖子请求时遇到了问题。
如果我要创建自己的注册控制器并从设计继承,允许用户sign_up?或者有没有办法通过设计控制器来处理json请求?
我看到的一个可以使过程更简单的例子是
class RegistrationsController < Devise::RegistrationsController
respond_to :json
def create
super
end
end
路线
constraints(subdomain: 'api') do
devise_for :users, path: 'lnf', controllers: { registrations: "registrations" }
end
所以我的基本网址看起来像api.local.dev:3000
。
但是使用这种方法,这是否意味着我可以对以下网址发出curl请求?
http://api.local.dev:3000/lnf/users/sign_up
答案 0 :(得分:1)
您应该禁用CSRF保护并启用JSON响应类型:
class RegistrationsController < Devise::RegistrationsController
skip_before_action :verify_authenticity_token
respond_to :json
end
然后只需使用参数和格式后缀(.json
)
curl -X POST \
--form "user[email]=user111@example.com" \
--form "user[password]=password" \
--form "user[password_confirmation]=password" \
'http://localhost:3000/users.json'