# REST接口说明 {docsify-ignore-all}
>该文档主要是对工作流平台提供的rest接口进行简要说明

## 请求规范
### 通信协议
流程引擎rest接口,使用http作为通信协议，客户端向服务端发送请求,使用post请求,请求体为 application/json服务端向客户端响应数据,响应json数据。编码格式使用utf-8响应的数据为统一格式:
```
{
  "code": 0,
  "success": true,
  "message": "",
  "data": [],
  "recordsTotal": "10"
}
```
**结果参数说明:**

| code         | 类型          | 描述                                                                                                                                                                  |
|--------------|-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| code         | int         | 0表示标识业务执行正确<br>900表示请求参数不正确<br>901获取租户信息失败<br>905用户名或密码错误<br>1000缺少登录凭证<br>1001凭证不合法<br>1002为凭证过期<br>1003时间参数错误<br>1004代办人姓名或id错误<br>1005不能将代办人设置为自身<br>9999系统服务器异常 |
| success      | boolean     | 是否正确标识本次请求业务是否完成可行，当为true时，code为0                                                                                                                                   |
| message      | String      | 错误返回信息描述                                                                                                                                                            |                  
| data         | Object/List | 当请求执行正确或错误时，应返回的数据。具体参考接口详细说明                                                                                                                                       | 
| recordsTotal | String      | 当data的数据为列表类型时,数据总数                                                                                                                                                 |                                                                                                                                                                       |

之后的rest接口说明只描述data中的内容。

请求地址说明：
http://127.0.0.1:8080/${apppath}/${prefix}/${api}${suffix} <br>
apppath: 项目名 <br>
prefix: 拦截路径:默认值为horizon/workflow/rest <br>
api: 每个具体业务接口 <br>
suffix:业务接口的请求后缀:默认. wf <br>
如项目名为demo，项目部署地址为127.0.0.1，端口号为8080，业务接口为test,则请求地址为: <br>
http://127.0.0.1:8080/demo/horizon/workflow/rest/test.wf <br>
之后的请求说明都使用该案例

## 获取登录认证
### 登录
为了识别用户,每个用户针对流程引擎会产生一个安全的accessToken,该用户accessToken须随其他参数一起请求服务端。 accessToken过期时间为5 天,通过该接口获得accessToken。<br>
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/user/login.wf <br>
**post数据说明：**
```
{
  "loginName": "",
  "password": "",
  "tenantCode": ""
}
```
请求参数说明:

| 参数         | 是否必须 | 描述      |
|------------|------|---------|
| loginName  | 是    | 用户名     |
| password   | 是    | 密码      |
| tenantCode | 否    | 单例模式下为空 |
**返回结果示例：**
```
{
  "code": 0,
  "data": {
    "deptName": "慧正通软",
    "userName": "管理员",
    "accessToken": "TUfKbStH79iCdo3J%2f%2bQXz%2f9NrA3ikDYoprzftK8uxVxXDyDtzldY3fcYmS4r8uJm"
  },
  "message": "",
  "recordsTotal": "",
  "success": true
}
```
**结果参数说明:**

| 参数          | 参数类型   | 描述            |
|-------------|--------|---------------|
| accessToken | String | 调用接口凭证，唯一用户标识 |
 | deptName    | String | 部门名称          |
 | userName    | String | 用户名称          |

### 测试连接
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/testConnection.wf <br>
**返回结果示例：**
```
{
  "code":0,
  "message": "测试连接成功",
  "success": true
}
```
success值为true 时，表明访问项目路径正确。

### 接口示例
所有的详细接口均需要携带用户凭证accessToken即请求参数为：
```
{
  "accessToken": "${ accessToken }",
  "otherParams": ""
}
```
比如下面的用户信息查询接口实例：
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/user/searchUser{suffix} <br>
**post数据说明：**
```
{
  "accessToken": "",
  "searchUser": ""
}
```
请求参数说明:

| 参数          | 是否必须 | 描述                  |
|-------------|------|---------------------|
| accessToken | 是    | 调用接口凭证，唯一用户标识       |
| searchUser  | 是    | 模糊查询用户姓名，如果为空，返回值为空 |
**返回结果示例:**
```
{
  "code": 0,
  "data": [
    {
      "id": "HZ28821856ef63420156ef6342a20002",
      "name": "用户01",
      "login": "user01"
    }
  ],
  "message": "",
  "recordsTotal": "1",
  "success": true
}
```
**结果参数说明:**

| 参数    | 参数类型   | 描述   |
|-------|--------|------|
| id    | String | 用户id |
| name  | String | 用户名称 |
| login | String | 登录名  |
