restful 的一些疑问
UserController
user表
id mobile password
user_info 表
uid nickname sex avatar
--登陆
function actionLogin()
end
--注册
function actionRegister()
end
--注销
function actionSignOut()
end
--修改密码
function actionModifyPassword()
end
--获取用户详细信息
function actionInfo()
end
restful 应该怎么来转换这些url
/user/register 这个我可以理解成 post /users
/user/login 这个应该怎么转换?
/user/sign-out 这个可以理解成 put /users
/user/modify-password 这个可以理解成 put /users
/user/info 这个应该怎么转换? get /users/id/info
如果是这样的话,我感觉很迷茫, 是不是应该 新写一个UserInfoControler get user-infos
用restful我感觉自己不知道要怎么写代码啊。。。。求帮忙。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要将restful理解为不在url中使用动词,你可以把登陆看作一个服务,post /login 就行了。
要理解restful首先得直到Representational State Transfer每个单词指的是什么。Representational表现(具象)指资源(resource)表现给你的样子。
state状态是指资源当前的状态,你增删改都可以理解为改变资源的状态,比如从user数据1条变为2条,某个user名字改变。
transfer就是指状态改变的这一过程,从客户端到服务端,怎么将这么一种变过传输过去,那就是通过http的GET、POST、PUT、DELETE,通过这四个动词告诉服务端资源的状态如何改变。
而理解这些的前提就是,你要将uri看作是一种资源,资源可以是某个实体类(user),可以是某个服务(login),因此对于动词我们应尽量转为名词,但是此处login用动词显然更明了,那我们就用动词也没关系。
当然rest还有其他的一些约束,比如说利用http的状态码表示操作的状态,比如数据传输使用json格式等等。