# API

在上一章节我们在用户服务创建了员工信息的controllerservicemapperentity等相关示例内容,它们的基类BaseControllerBaseServiceBaseMapper中封装了基础的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
}
code等于200时为成功状态,等于其他值时需要前端人员根据情况显示错误信息

# 删除

BaseController中封装了三个删除方法,分别为deletedeleteByIddeleteByIds

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中封装了五个查询方法,分别为selectAllselectByIdselectListselectOneselectPage。其中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