# API
在上一章节我们在用户服务创建了员工信息的controller
、service
、mapper
、entity
等相关示例内容,它们的基类BaseController
、BaseService
、BaseMapper
中封装了基础的CRUD方法,开发人员无需编写任何代码,只需继承这些基类即可。本章节我们演示下如何请求这些基础CRUD接口。
因业务场景需要,本平台中的接口默认需要先登录,然后在header中携带认证信息才可以正常访问,否则会提示{"msg":"您还未登录,请先登录系统","code":"401"}
,此时参考 模拟登录 章节的 流程在请求中携带认证标识access-token,才可以正常访问接口。
# 新增
新增操作我们直接使用BaseController
中的insert
接口,它的作用是保存单表数据,入参对象是继承BaseEntity
的实体对象。接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/insert
method:POST
Content-Type: application/json;charset=UTF-8
request body入参
{
"name":"静静",
"gender":"女",
"age":28,
"email":"jingjing@qq.com",
"phone":"13201122530",
"description":"jingjing"
}
响应结果
{
"code": "200",
"msg": "success",
"data": null,
"success": true
}
# 删除
BaseController
中封装了三个删除方法,分别为delete
、deleteById
、deleteByIds
。
delete
方法,它的作用是根据传入实体参数的属性进行匹配,匹配成功进行删除。入参对象是继承BaseEntity
的实体对象。接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/delete
method:POST
Content-Type: application/json;charset=UTF-8
request body入参
{
"name":"赵一一"
}
响应结果
{
"code":"200",
"msg":"success",
"data":1, /* 1:有数据删除 0:没有数据删除 */
"success":true
}
deleteById
方法,它的作用是根据主键进行删除。接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/deleteById
method:POST
Content-Type: application/x-www-form-urlencoded(url参数拼接)或者是multipart/form-data皆可
传参后拼接url
http://localhost:8367/api/user/staff/deleteById?id=d5e1137514be4711073bf30e14325e0e
响应结果
{
"code":"200",
"msg":"success",
"data":1,
"success":true
}
deleteByIds
方法,它的作用是根据多个主键批量进行删除,多个主键之间用逗号分隔。接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/deleteByIds
method:POST
Content-Type: application/x-www-form-urlencoded(参数拼接)或者是multipart/form-data皆可
传参后拼接url
http://localhost:8367/api/user/staff/deleteByIds?ids=5f2604332cb244a7a1e14ea412521bb3,bf40f079cb5f4aba97377f083fa76dad
响应结果
{
"code":"200",
"msg":"success",
"data":1,
"success":true
}
# 修改
修改操作可以直接使用BaseController
中的updateById
接口,它的作用是根据主键修改数据,入参对象是继承BaseEntity
的实体对象,要求入参实体对象的主键不能为空。接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/updateById
method:POST
Content-Type: application/json;charset=UTF-8
request body入参
{
"id":"4f0c41cba0c044358c307fb43d5d3ce5",
"phone":"13612345678",
"description":"测试部王五,手机号13612345678"
}
响应结果
{
"code":"200",
"msg":"success",
"data":null,
"success":true
}
# 查询
BaseController
中封装了五个查询方法,分别为selectAll
、selectById
、selectList
、selectOne
、selectPage
。其中selectPage
分页查询此处略过,后续章节会有相关讲解。
selectAll
方法,它的作用是查询表全部数据。无入参对象,接口的请求方式和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/selectAll
method:GET
响应结果
{
"code":"200",
"msg":"success",
"data":[
{
"id":"9e9c735844b841c0a970decdb2b5e182",
"createTime":"2022-01-14 14:57:21",
"updateTime":"2022-01-14 15:25:01",
"current":null,
"size":null,
"name":"张三",
"gender":"男",
"age":28,
"orgId":"1",
"email":"zhangsan@qq.com",
"phone":"13812345678",
"description":"开发部张三"
},
{
"id":"d5e1137514be473c873bf30e14325e0e",
"createTime":"2022-01-14 14:59:54",
"updateTime":"2022-01-14 15:25:02",
"current":null,
"size":null,
"name":"李四",
"gender":"男",
"age":22,
"orgId":"1",
"email":"lisi@qq.com",
"phone":"13712345678",
"description":"开发部李四"
}
],
"success":true
}
selectById
方法,它的作用是根据主键查询单条数据。入参对象是主键,接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/selectById
method:GET
Content-Type: 参数拼接或者是multipart/form-data皆可
url参数拼接
http://localhost:8367/api/user/staff/selectById?id=9e9c735844b841c0a970decdb2b5e182
响应结果
{
"code":"200",
"msg":"success",
"data":{
"id":"9e9c735844b841c0a970decdb2b5e182",
"createTime":"2022-01-14 14:57:21",
"updateTime":"2022-01-14 15:25:01",
"current":null,
"size":null,
"name":"张三",
"gender":"男",
"age":28,
"orgId":"1",
"email":"zhangsan@qq.com",
"phone":"13812345678",
"description":"开发部张三"
},
"success":true
}
selectList
方法,它的作用是根据实体属性条件查询多条数据,如果没有传入查询条件默认查询数据库全部数据。入参对象是继承BaseEntity
的实体对象,接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/selectList
method:GET
Content-Type: 参数拼接或者是multipart/form-data皆可
url参数拼接
http://localhost:8367/api/user/staff/selectList?gender=女
响应结果
{
"code":"200",
"msg":"success",
"data":[
{
"id":"293bafb9f3094c6b9c3429c12e49cce2",
"createTime":null,
"updateTime":null,
"current":null,
"size":null,
"name":"静静",
"gender":"女",
"age":28,
"orgId":null,
"email":"jingjing@qq.com",
"phone":"13201122530",
"description":"jingjing"
},
{
"id":"4f0c41cba0c044358c307fb43d5d3ce5",
"createTime":"2022-01-14 15:00:24",
"updateTime":null,
"current":null,
"size":null,
"name":"王五",
"gender":"女",
"age":18,
"orgId":"2",
"email":"wangwu@qq.com",
"phone":"13612345678",
"description":"测试部王五,手机号13612345678"
},
{
"id":"98da1d192bc24622be0811ec481e6485",
"createTime":null,
"updateTime":null,
"current":null,
"size":null,
"name":"王鑫",
"gender":"女",
"age":28,
"orgId":null,
"email":"jingjing@qq.com",
"phone":"13201122530",
"description":"jingjing"
}
],
"success":true
}
selectOne
方法,它的作用是根据实体属性条件查询单条记录,如果没有传入查询条件可能会抛出异常。入参对象是继承BaseEntity
的实体对象,接口的请求方式、入参数据和响应结果如下所示:
请求方式
url:http://localhost:8367/api/user/staff/selectOne
method:GET
Content-Type: 参数拼接或者是multipart/form-data皆可
url参数拼接
http://localhost:8367/api/user/staff/selectOne?name=静静
响应结果
{
"code":"200",
"msg":"success",
"data":{
"id":"293bafb9f3094c6b9c3429c12e49cce2",
"createTime":null,
"updateTime":null,
"current":null,
"size":null,
"name":"静静",
"gender":"女",
"age":28,
"orgId":null,
"email":"jingjing@qq.com",
"phone":"13201122530",
"description":"jingjing"
},
"success":true
}
使用微服务启动时,调用接口要统一使用网关服务端口,关于用户服务在网关中的配置, 我们已经在 新建一个模块工程 章节后边部分有所介绍; 完整的gateway介绍请参考springCloudGateway