我正在尝试组织我们正在构建的restfull api的端点。到目前为止,我所拥有的是:
GET - /api/members/list
GET - /api/members/:member_id
PUT - /api/members/:member_id
DELETE - /api/members/:member_id
POST - /api/members - add member
POST - /api/member/forgot_password
POST - /api/member/reset_password
POST - /api/member/sign_up - this is same as - POST - /api/members - add member
POST - /api/member/sign_in
POST - /api/member/validate
POST - /api/member/auth/twitter
POST - /api/member/auth/gplus
POST - /api/member/auth/facebook问题是我不太确定
POST - /api/members/forgot_password
OR
POST - /api/member/forgot_password
//For register a member to use post over resource
POST - /api/members
OR
//To have endpoit for that
POST - /api/member/sign_up因此,我对restfull概念的理解是在资源上使用请求动词。但是,当我们有/api/members资源,并且我希望有一个端点用于登录成员时,这是如何应用的?
/api/members/sign_in、/api/sign_in或/api/member/sign_in
发布于 2016-11-30 04:18:40
对我来说,使用复数或单数名词是一个味觉问题。
GET /api/members应该合理地返回一个成员集合,而获取一个成员集合对于使用任何一个成员都是非常有意义的
GET /api/members/{id}或
GET /api/member/{id}。
因此,如果您对forgot_password资源的关注是关于复数或单数形式,那么就没有“更好的方法”了。由你决定。
为了注册会员,我发现这个选项更合适
POST /api/members
因为您实际上正在尝试创建一个新的member资源。
关于你的最后一个问题,同样是关于你如何映射你的sign_in资源的问题。sign_in是members的一个子资源有意义吗?在给出答案之前,请注意您所描述的资源类型中包含的陷阱。您确定将sign_in看作是一件事而不是一种行为吗
在这种情况下,我相信sign_in资源会更自然地放在不同的根目录下。然而,值得一提的是,在REST中登录有点棘手。由于不允许服务器保留任何会话,因此您必须知道必须对每个请求进行身份验证(通常是通过令牌)。我不想离题,也许你会想在实现你的登录机制之前先阅读this。
https://stackoverflow.com/questions/40871375
复制相似问题