一个Rest风格URL的设计问题,以用户注册为例

乐山ing 发布于 2016/09/21 09:13
阅读 940
收藏 1

     用户注册页面:register.jsp,显示用户页面:userinfo.jsp

    URL如何设计?如下设计如何

     GET /user/register  转向register.jsp

     在register.jsp页面上POST /user/register,转向控制器中用户注册方法。

     但感觉这样的风格很不Rest,URL中出现了动词。比较Rest的应该是 POST /user实现用户注册。但注册页面的URL这时候应该如何设计?GET /user吗?

   

   

加载中
0
李泽平
李泽平

首先,你先不管页面的名字

路径都是/user

get方法是获取用户,post是注册或者修改用户

就已经完成了。


至于你结果返回json还是转发到某个jsp页面根本不重要啊。你浏览器的地址始终是/user,是这个意思吗?

小虫0302
小虫0302
回复 @李泽平 : 我问你禁止这个用户rest的路由怎么写,还有很多其它的情况
李泽平
李泽平
回复 @乐山ing : 显示所有用户 get www.***.com/user,不给userId就显示所有用户
乐山ing
乐山ing
回复 @李泽平 : 万一这个url要用于显示所有用户,这样的话局限性不是很大
李泽平
李泽平
回复 @李泽平 : 提交到www.****.com/user 服务端处理完成之后重定向到某个页面展示注册成功,或者显示用户信息,或者首页,这跟地址没什么关系啊
李泽平
李泽平
回复 @乐山ing : www.****.com/user就行了啊
下一页
0
小虫0302
小虫0302
不要为了rest而rest
乐山ing
乐山ing
刚才看了一下开源中国的注册页面 注册的url是https://www.oschina.net/home/reg 提交用户信息的url是https://www.oschina.net/action/user/hash_create
0
fz00x0zf
fz00x0zf

@乐山ing

Restful API只是一套API设计理论,符合设计规则的URL(我理解为API)还要结合http请求的不同方法,例如:常用和不常用的http动词(举例):

GET       /users:列出所有用户
POST     /user:新建一个用户()
GET       /user/{userId}:获取某个指定用户的信息
PUT       /user/{userId}:更新某个指定用户的信息(提供该用户的全部信息)
PATCH   /user/{userId}:更新某个指定用户的信息(提供该用户的部分信息)
DELETE   /user/{userId}:删除某个用户
GET       /user/{userId}/phone:列出某个指定用户的手机号码
DELETE  /user/{userId}/phone/{phoneID}:删除某个指定用户指定手机号关联的信息

更详细的内容推荐看restful 设计文档,下面推荐两篇阮一峰大大写的restful设计相关的文章:

RESTful API 设计指南

理解RESTful架构

乐山ing
乐山ing
你说说注册用户页面这个url怎么设计
0
jQer
jQer

GET /join

POST /join

GET /login

POST /login

POST /logout

GET /user/:userId

GET /blog/:blogId

GET /blog/:blogId/edit

PUT /blog/:blogId

DELETE /blog/:blogId

POST /blog

GET /user/:userId/blogs or /blogs?userId=n

...

乐山ing
乐山ing
POST /join是注册吧,感觉这样也挺好
0
雨翔河
雨翔河

不要为了rest而rest!!!!!

返回顶部
顶部