接口包括(分页查询,新增,根据id查找,修改,删除,启用和禁用,上传图片)
前言:
如何设计一个接口
现在我们确定了具体的接口,那么我们该如何设计一个接口呢?
首先,我们需要知道接口的基本组成部分,以此来编写接口文档,方便前后端同步
接口的组成部分,都包含了必要的四项:请求路径、请求方式、入参、出参
-
请求路径,请求的资源路径,比如,
- 我们现在开发护理项目,一般开头就是
/nursing_project - 如果是新增,可以使用拼接路径区分:
/nursing_project/add
- 我们现在开发护理项目,一般开头就是
-
请求方式,需要符合restful风格
- 查询 GET
- 新增 POST
- 修改 PUT
- 删除 DELETE
-
入参,接口接收的请求参数,目前使用springmvc通常包含三种
-
路径上的参数
- 问号传参,例如:
/nursing_project?status=1,直接接收 - path传参 ,例如:
/nursing_project/status/1,@RequestParam
- 问号传参,例如:
-
请求体参数,加@RequestBody接收
{ "name":"洗脚", "status":1 }
-
-
出参,前后端分离开发,通常都会返回json格式,如下:
-
基本的返回
{ "code": 200, "msg": "操作成功", "data": { "id": "41", "createTime": "2023-07-31 11:36:37", "createBy": "1671403256519078006", "planName": "额的发挥", "status": 1, } }code:响应状态码
msg:接口请求提示信息(成功 | 失败)
data:具体返回的数据
-
分页的数据返回
{ "code": 200, "msg": "操作成功", "data": { "total": "26", "pageSize": 10, "pages": "3", "page": 1, "records": [ { "id": "42", "createTime": "2023-07-31 15:13:44", "updateTime": "2023-08-04 19:22:51", "createBy": "1671403256519078006", "updateBy": "1671403256519078006", "creator": "小烁-副院长", "name": "烁烁的豪华项目", "orderNo": 1, "unit": "次", "price": 1000000.00, "image": "https://yjy-slwl-oss.oss-cn-hangzhou.aliyuncs.com/8469d42d-329c-4200-9019-358cb806d75c.png", "nursingRequirement": "你付款吧,保你满意888", "status": 1, "count": 0 } ] } }分页数据又包含了关于分页的字段
- total 总条数
- pageSize 每页调试条数
- pages 总页数
- page 当前页码
- records 分页后的数据列表
-
接口入参和出参的对象概念:
-
DTO:Data Transfer Object数据传输对象:xxxDto或者xxxDTO,xxx为业务领域相关的名称。接口的入参
-
VO:Value Object展示对象:xxxVO或者xxxVo,xxx一般为网页名称。接口的出参,同时,如果有不想展示给前端的数据,也可以通过vo过滤,如果通过id返回名字,也可以通过vo。
设计
-
- 查询接口(模糊查询):
要护理名称,状态查询,当前页,每页显示条数 这些param,所以
接口地址使用
/nursing_project,使用Get请求,返回分页接口数据。
- 查询接口(模糊查询):
要护理名称,状态查询,当前页,每页显示条数 这些param,所以
接口地址使用
-
- 新增接口:
接口地址
/nursing_project,使用Post因为根据原型,就是需要
- 新增接口:
接口地址
{
"id": 0,
"image": "",
"name": "",
"nursingRequirement": "",
"orderNo": 0,
"price": 0,
"remark": "",
"status": 0,
"unit": ""
}
-
- 编辑接口:接口地址
/nursing_project,使用Put,因为是要修改。传入参数与
- 编辑接口:接口地址
-
- 启用禁用接口:接口地址
/nursing_project/{id}/status/{status},使用Put,参数要包括(id,status)
- 启用禁用接口:接口地址
-
- 删除接口:接口地址
/nursing_project/{id},请求方式DELETE.
- 删除接口:接口地址
功能开发
现在我们需要确定的是后台代码的具体的开发步骤,一个良好的步骤,可以增加我们的开发效率
- controller的基本定义(接口四要素)
- mapper接口和映射文件
- 业务层代码编写
- 单元测试
- 业务层对接控制层
- 接口测试