-
restful摘要:
REST:Representational State Transfer(表象层状态转变)
1.每一个URI代表一种资源;
2.客户端和服务器之间,传递这种资源的某种表现层;
3.客户端通过四个HTTP动词(get、post、put、delete),对服务器端资源进行操作,实现”表现层状态转化”。
作用:设计一套统一的API提供给各种客户端来进行数据交互
设计:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作
反例:
https://example.com/api/getallUsers GET 获取所有用户
https://example.com/api/getuser/1 GET 获取标识为1用户信息
https://example.com/api/user/delete/1 GET/POST 删除标识为1用户信息
https://example.com/api/updateUser/1 POST 更新标识为1用户信息
https://example.com/api/User/add POST 添加新的用户
正例:
https://example.com/api/users GET 获取所有用户信息
https://example.com/api/users/1 GET 获取标识为1用户信息
https://example.com/api/users/1 DELETE 删除标识为1用户信息
https://example.com/api/users/1 Patch 更新标识为1用户部分信息,包含在body中
https://example.com/api/users POST 添加新的用户
-
关于spring对restful的支持的注解:
@RestController与@Controller
@RestController相当于 @Controller和@ResponseBody结合。它有两层含义:一是作为控制器注入到Spring上下文环境,二是请求响应为数据序列化(默认序列化方式是JSON),而不是跳转到html或模板页面。
@RequestMapping 与@GetMapping、@PutMapping、@PostMapping、@DeleteMapping
@RequestMapping(value = “/article”, method = RequestMethod.GET) 新方法可以简写为: @GetMapping("/article"),其他同理。
@RequestBody与@ResponseBody
用于接收和响应序列化数据(JSON),可以支持嵌套JSON数据结构。
@PathVariable 、@RequestParam和@ModelAttribute
PathVariable用于URI上的{参数}
RequestParam用于接收普通方式提交的参数
@ModelAttribute用于将参数绑定到实体上