微服务中restful 风格的url的注意事项

微服务中restful 风格的url的注意事项

以下总结均出于自身开发体验
1、url纯命名规范:url中不带大写字母(这里说的url是没有urlencode过的url),多个单词用下划线分隔(广大做java的记得不要在url上去用驼峰命名)。
2、url命名应该是以资源为导向的命名,对资源的操作是由HttpMethod(get、post、put、delete)来决定。所以一般来说url上的单词都应该是名词,一定不要是动词。举个栗子:
对于User这个用户的操作:
新增用户:http://localhost:8768/user post方法提交;
修改用户:http://localhost:8768/user put方法提交;
删除用户:http://localhost:8768/user/123456 delete方法提交;
查询用户:http://localhost:8768/user get方法提交;
不要写成http://localhost:8768/get_user 这样的,因为我们是以资源(user)为导向的restful风格。
3、url不要过于简单,在一个项目里面,Controller一般都不会很少,所以要注意对于不同资源的操作作分类,否则会造成极大的不便。下面实例说明一下。
根据id查询用户接口http://localhost:8768/{id} url这样来写似乎也没什么毛病。如果仅仅是一个UserController其中的方法这样写确实没有什么问题。不过如果系统中此时有一个学校相关的Controller,SchoolController,而这个里面刚好有一个查询所有学校的接口http://localhost:8768/school 那么问题就来了,系统没有办法区分这2个接口了,谁知道是不是有一个id为“school”的用户呢?
所以比较好的实践是,接口还是以资源为导向,上面的根据id查询用户的接口应该写成:http://localhost:8768/user/{id} 这样就不会出问题了。
另外,一定要杜绝root形式(root形式是我自己取的名字,意思就是端口后面直接一个“/”,有点像根目录)的url:http://localhost:8768/{id} 这个url势必会与任何已定义的只有一级的url(如上面的http://localhost:8768/school)产生冲突。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值