网站建设硬件架构设计,无代码应用搭建平台,发稿渠道,wordpress 仿 模板下载Rest
Rest的全称是Representational State Transfer 。Rest是一种架构风格。Rest有很多原则和限制:
客户端-服务端架构模式无状态可缓存统一接口分层系统按需缓存
Rest对我们开发人员来说基本上就是资源#xff0c;我们一般通过URI表示我们请求的一个资源。例如#xff1a…Rest
Rest的全称是Representational State Transfer 。Rest是一种架构风格。Rest有很多原则和限制:
客户端-服务端架构模式无状态可缓存统一接口分层系统按需缓存
Rest对我们开发人员来说基本上就是资源我们一般通过URI表示我们请求的一个资源。例如我们想要查询一个用户则可以用/user/{userId}来表示。
Rest与HTTP
HTTP动词
GET: 获取资源 POST: 新增资源 PUT: 更新资源 DELETE: 删除资源
举例
URI为 /order/{orderId} 获取一个订单GET /order/{orderId} 新增一个订单POST /order 更新一个订单PUT /order/{orderId} 删除一个订单DELETE /order/{orderId} 订单列表: GET /order/list?pageNo1pageSize2
Spring MVC对Rest的支持
RestController表示一个Rest风格的接口所有的path自动返回JSON。GetMapping(“/order/{orderId}”) : 获取一个订单GET /order/{orderId}PostMapping(“/order”): 新增一个订单POST /orderPutMapping(“/order/{orderId}”): 更新一个订单PUT /order/{orderId}DeleteMapping(“/order/{orderId}”): 删除一个订单DELETE /order/{orderId}GetMapping(“/order/list”):订单列表
一个问题
在实际使用Rest风格接口时我们可能会有这样的接口定义/user/{username}, /user/{userNo}, /user/{userId}, 其中{username}, {userNo}, {userId}可能都是字符串spring是无法走到你期望的Controller/RequestMapping里面去的所以在我们日常工作中应该避免这样的定义或者帮Spring去除歧义比如/user/uname/{username}, /user/no/{userno}, /user/id/{userId}。
参考
Representational State Transfer (REST)