关于如何规范的写接口
1.控制层Resultful风格
Get 获取资源
Put 更新资源
Patch 更新部分属性
Delete 删除资源
Post 创建资源
合理的使用postMapping、putMapping、getMapping、deleteMapping
2.不同注解接收参数方法
接收少量数据GetMapping
getMapping的请求url的形式有两种:
1.一种是 后台访问地址?参数1= “参数1”&参数2=“参数2”,在后台取出路径上的值可以用,在后台程序对应方法的路径可以只需要写路径即可
http://example.com/api/users?userId=123&status=active
// Java 示例
@GetMapping("/api/users")
public ResponseEntity<User> getUser(@RequestParam String userId, @RequestParam String status) {
// 在这里可以使用 userId 和 status
}
2.第二种是 后台访问地址 ?参数,在后台程序对应方法的路径之后需要加一个{参数名}
http://example.com/api/users/123
// Java 示例
@GetMapping("/api/users/{userId}")
public ResponseEntity<User> getUser(@PathVariable String userId) {
// 在这里可以使用 userId
}
接收大量数据/表单用PostMapping
post的参数呢是一个对象,从前端角度出发可以看成一个json格式的字符串,在后台接收的时候,可以直接用一个对象来接收,这个对象前面加上注解@ResquestBody即可
补充说明PutMapping和DeleteMapping
put跟post类似,对应的是更新操作,传过来的也是一个json字符串可以用@RequestBody的形式接收,也可以像get那样,用参数的形式进行传值
delete的用法就跟get类似了,delete对应的是删除,把字段的值传过来即可
3.取出路径上的参数注解
取出url路径上的参数:
第一种用@RequestParam,这个注解的value指定路径上的参数名,require用来标识是否是必须要传的参数(适用于路径为/id)
第二种用@PathVariable,这个直接在注解的参数中写入参数名就可以了(适用于路径为{id})
第三种 实体参数接收(对象):加注解@ModelAttribute或者@RequestBody
4.AjaxResult和toAjax(控制层extends BaseController)
在controller控制器中使用:增、删、改调用BaseController的toAjax(),查询调用AjaxResult()的success()
(其他更详细讲解见java返回ajax请求工具类,返回状态码等信息_return toajax-CSDN博客)
5.验证结果使用postman
亲测可用,注意如果传对象(新增修改需要用到),需要用Body里form-data属性添加key-value
6.常见状态码
200 200 ok 服务器成功返回用户的请求数据 。
201 create 用户创建或修改数据成功
202 Accept有一个请求进入后台排队
204 No Content 删除数据成功
400 用户发送的请求有错误,服务器没有进行新建或修改操作
401用户没有权限 用户名,密码错误
403 用户得到授权,但是访问被禁止
404 用户发出的请求是不存在的记录,服务器没有进行操作
406用户请求的格式不对
410 用户请求的资源被永久删除,不会被诶获得
500 服务器错误,用户无法进行判断是否请求成功
200 系列是成功的,400系列是客户端,500系列是服务端
7.注解的写法
/**
* 获取商品列表
* @param productId 商品ID
* @return 商品列表
* @author adi
*/