REST 的用户资源 API

User Resources for REST API

我正在为 rails 使用 devise gem。

为用户生成的默认路由包括以下部分路由:

    new_user_password GET    /users/password/new(.:format)                                                            devise/passwords#new
   edit_user_password GET    /users/password/edit(.:format)                                                           devise/passwords#edit
        user_password PATCH  /users/password(.:format)                                                                devise/passwords#update
                      PUT    /users/password(.:format)                                                                devise/passwords#update
                      POST   /users/password(.:format)                                                                devise/passwords#create

我想了解他们为什么不使用 /users/:id/password 等?

例如,我正在添加用户 preference 路由。我可以遵循相同的逻辑并制作类似 /users/preferences 的内容,但根据当前登录的用户,感觉应该是 /users/:id/preferences。但是,我试图让一切保持相似,并且 devise 已经树立了先例,除非我改变它。

可以/users/:id/preferences。但是,params[:user_id] 将(大概)等于 current_user.id。所以,这有点多余。

相反,您可以只执行 /users/preferences 并从 current_user 访问相关的 id。 (如果您喜欢这种东西,可以通过不将其包含在 url 中来掩盖当前用户的 ID。)