总结

协议风格唯一清晰

HTTP协议:行 头 体
nginx代理
版本
风格:GET+POST;Restful
接口命名:风格固定+唯一+清晰(一看接口名就知道功能+唯一性)
请求参数:Query参数,Path参数,Body参数

举例:Restful

nginx

prod-api/v1/
dev-api/v1/
test-api/v1/

Restful:GET POST PUT DELETE PATCH
增删改查

controller命名:ClassController(表名Controller)
资源:

POST /class/v1/class/one:新建一个班级
方法名:postOne
权限命名:"post:one"
资源:
POST /class/v1/class/batch:批量新建班级
方法名:postBatch
权限命名:"post:batch"
资源:
DELETE /class/v1/class/{id}:删除一个班级
方法名:deleteId
权限命名:"delete:id"
资源:
DELETE /class/v1/class/{ids}:批量删除班级
方法名:deleteBatch
权限命名:"delete:batch"
资源:
PUT /class/v1/class/one:更新一个班级(提供该班级的ID和全部信息)
方法名:putOne
权限命名:"put:one"
资源:
PUT /class/v1/class/batch:批量更新班级(提供该班级的ID和全部信息)
方法名:putBatch
权限命名:"put:batch"
资源:
PATCH /class/v1/class/one:更新一个班级(提供该班级的ID和部分信息)
方法名:patchOne
权限命名:"patch:one"
资源:
PATCH /class/v1/class/batch:批量更新班级(提供该班级的ID和部分信息)
方法名:patchBatch
权限命名:"patch:batch"
资源:
GET /class/v1/classs/list:列表查询班级(条件查询)
方法名:getList
权限命名:"get:list"
资源:
GET /class/v1/classs/page:分页查询班级(条件查询)
方法名:getPage
权限命名:"get:page"
资源:
GET /class/v1/classs/all:查询所有班级
方法名:getAll
权限命名:"get:all"
资源:
GET /class/v1/classs/{ID}:ID查询一个班级
方法名:getId
权限命名:"get:id"
资源:
GET /class/v1/classs/one:查询一个班级(条件查询)
方法名:getOne
权限命名:"get:one"
资源:

DELETE /class/v1/class/{classId}/students/{studentId}:删除某个指定班级的指定学生
GET /class/v1/class/{classId}/student/all:列出某个指定班级的所有学生

VO DTO PO命名

`表_唯一操作_ReqVO` `表_唯一操作_ResVO`

举例:GET+POST

参考 分析:

  • 只有GET和POST方式
  • /业务/版本号/模块/唯一操作
  • 参数传递有“链接参数”和“Body参数”
  • 安全性有{access_token}

版本号:https://www.xxx.cn/v2/web/index

唯一操作:

  • 创建:create
  • 根据ID删除1个:delete
  • 根据ID列表批量删除:batchdelete
  • 根据ID更新:update
  • 根据ID查找:one
  • 查找所有:all
  • 列表条件查找:list
  • 分页条件查找:page

创建成员

创建成员
- POST
- /bin/user/create
- 请求参数:{access_token}
- Body参数:object
- 请求头:application/json

删除成员

删除成员
- Get
- /bin/user/delete
- 请求参数:{access_token},{userid}

批量删除成员

批量删除成员
- Post
- /bin/user/batchdelete
- 请求参数:{access_token}
- Body参数:array[string]
- 请求头:application/json

ID更新成员

更新成员
- POST
- /bin/user/update
- 请求参数:{access_token}
- Body参数:object
- 请求头:application/json

ID查询成员

查询成员
- GET
- /bin/user/get
- 请求参数:{access_token},{userid}

List查询成员简介

获取部门成员简介
- Get
- /bin/user/simplelist
- 请求参数:{access_token},department_id

List查询成员详情

获取部门成员详情
- Get
- /bin/user/list
- 请求参数:{access_token},department_id

举例:Restful/GET+POST+PUT+DELETE+PATCH

分析:

  • 请求方式:GET,POST,PUT,DELETE,PATCH
  • /业务/版本号/模块/唯一操作
  • 唯一操作=请求方式+接口名
  • 参数传递有“链接参数”和“Body参数”

唯一操作:

  • 创建:Post /system/menu/
  • 根据ID删除1个:Delete /system/menu/{menuId}
  • 根据ID列表批量删除:Delete /system/menu/{menuIds}
  • 根据ID更新:Put /system/menu/
  • 根据ID查找:Get /system/menu/{menuId}
  • 查找所有:Get /system/menu/all
  • 列表条件查找:Get /system/menu/list
  • 分页条件查找:Get /system/menu/page
  • 树形查找:Get /system/menu/tree
  • 导入:Post /system/menu/import
  • 导出:Get /system/menu/export

增加菜单

/system/menu/
- 增加菜单
- 请求方式:Post
- 请求参数:SysMenu menu

ID删除菜单

/system/menu/{menuId}
- 删除菜单
- 请求方式:Delete

IDs删除菜单

/system/menu/{menuIds}
- 删除菜单
- 请求方式:Delete
- 请求参数:`@PathVariable Long[] menuIds`

修改菜单全部

/system/menu/
- 修改菜单
- 请求方式:Put
- 请求参数:SysMenu menu

修改菜单部分

/system/menu/
- 修改菜单
- 请求方式:Patch
- 请求参数:SysMenu menu

ID查找菜单

/system/menu/{menuId}
- ID查找
- 请求方式:Get

列表查找菜单

/system/menu/list
- 列表查找
- 请求方式:Get
- 请求参数:SysMenu menu

树形查找菜单

/system/menu/tree
- 树形查找
- 请求方式:Get
- 请求参数:SysMenu menu

导入菜单

/system/menu/import
- 导入
- 请求方式:Post
- 请求参数:`MultipartFile file`

导出菜单

/system/menu/export
- 导出
- 请求方式:Get

菜单对应角色菜单列表树

/system/menu/roleMenuTreeselect/{roleId}
- 加载对应角色菜单列表树
- 请求方式:Get

HTTP概述

restful的controller如何命名 restful接口命名_方法名

请求:行头体

  • 请求方式
  • 请求接口
  • 请求参数
  • 请求头:请求格式

响应:行头体

  • 响应状态
  • 响应头:响应格式
  • 响应数据