Java编写接口注意事项
提示:记录java后端编写接口的注意事项
目录
1 概念解读
- RESTful API:REST 架构风格的 API 设计,即前端和后端独立开发
2 注解
2.1 控制器注解
@Controller:用于接受前端请求,返回HTML页面;位置放在类的上方,示例如下:
@Controller// 传统MVC控制器publicclassViewController{ @GetMapping("/home")publicStringhomePage(){ return"home";// 返回视图名}}@RestController:用于接收前端请求,返回JSON/XML数据;位置放在类的上方,示例如下:
@RestController// 组合注解 = @Controller + @ResponseBodypublicclassUserController{ // 所有方法默认返回JSON,不需要@ResponseBody}2.2 请求映射注解
@RequestMapping:通用请求映射,可以接收get | post | put | patch | delete,位置放在类和方法上。
@DeleteMapping:专门用于DELETE,删除数据,示例如下:
@DeleteMapping("/users/{id}")publicvoiddeleteUser(@PathVariableLong id){ // 删除用户}@PatchMapping:专门用于PATCH,部分更新资源,示例如下:
@PatchMapping("/users/{id}")publicUserpartialUpdate(@PathVariableLong id,@RequestBodyMap<String,Object> updates){ // 部分更新}@PutMapping:专门用于PUT,更新数据,示例如下:
@PutMapping("/users/{id}")publicUserupdateUser(@PathVariableLong id,@RequestBodyUser user){ // 更新用户}@PostMapping:专门用于POST请求,创建新资源、提交表单,示例如下:
@PostMapping("/users")publicUsercreateUser(@RequestBodyUser user){ // 创建用户}@GetMapping:专门用于GET请求,查询数据,获取资源,示例如下:
@GetMapping("/users/{id}")publicUsergetUser(@PathVariableLong id){ // 查询用户}2.3 参数处理注解
@RequestParam:请求参数,获取URL查询参数,位置放在参数前面,示例如下:
@GetMapping("/users")publicList<User>listUsers(@RequestParamString name,// 必需参数@RequestParam(required =false)Integer page,// 可选参数@RequestParam(defaultValue ="10")Integer size,// 默认值@RequestParam(@PathVariable:获取URL路径中的变量,示例如下:
@GetMapping("/users/{id}/orders/{orderId}")publicOrdergetOrder(@PathVariableLong id,// 必需@PathVariable("orderId")Long oid,// 指定别名@PathVariableOptional<String> name // 可选){ // URL: /users/123/orders/456}