接口文档
约定
URI:http://172.16.1.40:8080
HTTP头:Content-Type: application/json
响应说明:基于Response Code来判断接口成功与否,200-299代表成功,300以上代表失败,400以上代表客户端异常,500以上代表服务端异常
API规范: 基于access_token机制
请求的URL后面都必须带上参数access_token, 不需要授权的接口除外,access_token在用户认证成功后返回(不走浏览器session机制)
防篡改机制:MD5+key
添加到header里面,key为hash
认证
管理后台PC客户端跳转登陆
URI:/token
HTTP方法:POST
请求实体:
{
"userId": "8e4eca6bb62a4caea183ce66a2768682",
"name": "张三",
"avatar": "xxxxx",
"orgId": "108f826f-4a36-4742-a124-6ade824c85ed",
"ticket": "bebd9c2dc5c943249b7ddc211f7d02d3",
"domainId": "atwork"
}
响应实体:
{
"access_token": "1ad88f34090b46498e96c21ba858e7dd",
"organizations": [{
"name": "恒拓高科",
"avatar": "",
"orgId": ""
}],
"avatar": "",
"name": ""
}
管理后台扫码登陆
步骤:
生成二维码
定时轮询查看状态
生成二维码
URI:
HTTP方法:GET
请求实体:
{
"qrcode": "图片base64"
}
定时轮询查看状态
管理后台账号密码登陆
URI:
HTTP方法:POST
请求实体:
{
"username": "15912345678",
"password": "xxxxx"
}
响应实体:
移动端,PC端登陆
URI:/token
HTTP方法:POST
请求实体:
{
"userId": "8e4eca6bb62a4caea183ce66a2768682",
"name": "张三",
"avatar": "xxxxx",
"orgId": "108f826f-4a36-4742-a124-6ade824c85ed",
"ticket": "bebd9c2dc5c943249b7ddc211f7d02d3",
"domainId": "atwork"
}
响应实体:
{
"access_token": "1ad88f34090b46498e96c21ba858e7dd",
"organizations": [{
"name": "恒拓高科",
"avatar": "",
"orgId": ""
}],
"avatar": "",
"name": ""
}
管理后台
流程分类
流程分类添加
URI:/repository/process-categories/
HTTP方法:POST
请求实体:
{
"name": "分类1",
"parentId": "xxxxx"
}
响应实体:
{}
流程分类编辑
URI:/repository/process-categories/:id
HTTP方法:PUT
请求实体:
{
"name": "分类1"
}
响应实体:
流程分类删除
URI:/repository/process-categories/:id
HTTP方法:DELETE
响应实体:
流程分类树
URI:/repository/process-categories/
HTTP方法:GET
响应实体:
{
"data": [{
"id": "",
"name": "",
"children": [{
}]
}]
}
流程列表
URI:/repository/process-definitions
HTTP方法:GET
参数说明:
category: 流程分类,不传时默认查询所有
suspended: 是否挂起,默认false
startableByUser: 筛选某个用户有权限发起的流程
响应实体:
{
"data": [{
"id": "xxxx",
"key": "",
"name": "请假流程",
"icon": "",
"suspended": false, // 是否挂起
"creator": "创建者",
"instanceCount": 88,
"lastUpdated": "毫秒数" // 最后更新时间
}]
}
流程复制
流程移动
URI:/repository/process-definitions/:id
HTTP方法:PUT
请求实体:
{
"category": "categoryId"
}
响应实体:
{
}
流程作废
URI:/repository/process-definitions/:id
HTTP方法:DELETE
流程启用
URI:/repository/process-definitions/:id
HTTP方法:PUT
请求实体:
{
"action" : "activate"
}
流程停用
URI:/repository/process-definitions/:id
HTTP方法:PUT
请求实体:
{
"action" : "suspend"
}
流程创建-标准流程
URI:/repository/process-definitions/
HTTP方法:POST
请求实体:
{
"name": "请假流程",
"category": "categoryId",
"description": "description",
"icon": "mediaId"
}
响应实体:
{
}
流程创建-自由流程
URI:/repository/free-process-definitions/
HTTP方法:POST
请求实体:
{
"name": "请假流程",
"category": "categoryId",
"description": "description",
"icon": "mediaId"
}
响应实体:
{}
获取流程详情
URI:/repository/process-definitions/:id
HTTP方法:GET
响应实体:
{
"id": "xxxx",
"name": "请假流程",
"suspended": false, // 是否挂起
"creator": "创建者",
"instanceCount": 88,
"lastUpdated": "毫秒数" // 最后更新时间
}
流程表单保存
URI:/repository/process-forms/
HTTP方法:POST
请求实体:
{
"components": [], // 组件
"css": {},
"description": "description"
}
响应实体:
{}
流程设计
URI:/repository/deployements
HTTP方法:POST
请求实体:
{
}
响应实体:
{}
流程设置
URI:/process-settings/:id
HTTP方法:PUT
请求实体:
{
"suspended": false,
"sn": "'abc' + date + sn(6)",
"starterScope": {
"orgs": ["xxx"],
"users": ["xxx"]
},
"category": "",
"icon": ""
}
响应实体:
{}
流程数据
流程数据查询
URI:/repository/process-datas/:key
HTTP方法:GET
参数说明:
按提交日期筛选:createdFrom=2017-01-01, createdTo=2017-01-30
按部门筛选: orgId
按选项筛选: field_:id=value, field_:id=[]
分页: start=0, limit=20
响应实体:
{
"data": [{
"id: "",
"sn": "",
"starter": "",
"starterOrg": "",
"starterJob": "",
"created": "",
"status": "",
"finished": "",
"field": [{
id: value
}],
"handingInfo": [{
"approver": "",
"handleTime": "",
"content": ""
}]
节点1意见、节点1结果、节点1签名、节点1时间……节点N意见、节点N结果、节点N签名、节点N时间
}]
}
流程数据删除
URI:/data/process-instances/:id
HTTP方法:DELETE
流程数据导出
URI:/data/process-exports/:id
HTTP方法:GET
通讯录管理
获取组织架构树
URI:/orginisation/orgs/:id/tree
HTTP方法:GET
响应实体:
{
"data": [{
"id": "",
"name": "",
"children": [{}],
"initiated": false
}]
}
获取某个组织下的雇员
URI:/orginisation/orgs/:id/members
HTTP方法:GET
参数说明:
recursive=true 是否包含子部分成员
keyword=用户名或者姓名
start=0
limit=20
响应实体:
{
"data": [{
"userId": "",
"name": "",
"job": "",
"avatar": ""
}]
}
角色定义
角色新增
URI:/orginisation/roles?zoneId=:orgId
HTTP方法:POST
请求实体:
{
"name": "",
"description": ""
}
响应实体:
{
}
角色修改
URI:/orginisation/roles/:id
HTTP方法:PUT
请求实体:
{
"name": "",
"description": ""
}
响应实体:
{
}
角色删除
URI:/orginisation/roles/:id
HTTP方法:DELETE
获取所有角色
URI:/orginisation/roles?zoneId=:orgId
HTTP方法:GET
响应实体:
{
"data": [{
"id": "",
"name": "",
"description": "",
"inherited": false
}]
}
说明:
机构负责人和分管领导是每个组织默认都有的角色,org-leader和org-superior
开启关闭获取上级定义的角色
URI:/orginisation/role-settings/
HTTP方法:PUT
请求实体:
{
"inherit": true
}
响应实体:
{
}
角色分配
获取角色分配列表
URI:/orginisation/role-assignments?orgId=:orgId
HTTP方法:GET
响应实体:
{
"data": [{
"role": {
"id": "",
"name": "",
},
"user": {
"id": "",
"name": "",
}
}]
}
角色分配新增修改删除
URI:/orginisation/role-assignments?orgId=:orgId
HTTP方法:PUT
请求实体:
[{
"role": {
"id": "",
"name": "",
},
"user": {
"id": "",
"name": "",
}
}]
响应实体:
{
}
分管设置
获取列表
URI:/orginisation/zones/:id
HTTP方法:GET
响应实体:
{
"data": [{
"orgId": "",
"admins": [{
"id": "",
"name": ""
}]
}]
}
分管设置新增或修改
URI:/orginisation/zones/
HTTP方法:POST/PUT
请求实体:
{
"orgId": "",
"admins": ["", ""]
}
响应实体:
{
}
媒体文件
上传文件
URI:/files/
HTTP方法:POST
HTTP请求头:Content-Type: multipart/form-data
请求实体:
{
"file": ""
}
响应实体:
{
"mediaId": "",
"name": "",
"size": ""
}
上传图片
下载
URI:/files/:id
HTTP方法:GET
响应实体:
{
"url": ""
}
切换管理区
前端实现
修改管理员密码
移动端
获取待办数、知会数
URI:
HTTP方法:GET
响应实体:
{
}
身份切换
前端实现
获取当前组织下的流程列表
URI:/repository/process-definitions/
HTTP方法:GET
请求参数:
startableByUser, 用户ID
zoomId, 组织ID
响应实体:
{
"data": [{
"id": "xxxx",
"key": "",
"name": "请假流程",
"icon": ""
}]
}
根据ID获取流程详情
URI:/repository/process-definitions/:id
HTTP方法:GET
响应实体:
{
"components": [],
"type": "",
"name": "",
"id": "",
"version": "",
"key": "",
"comments": [],
"approveInfo": []
}
发起流程
URI:/runtime/process-instances
HTTP方法:POST
请求实体:
{
"processDefinitionId": "key:version:xx",
"components": [],
"starter": "",
"orgId": ""
}
响应实体:
{
}
保存流程
URI:/runtime/process-instances-draft
HTTP方法:POST
请求实体:
{
"processDefinitionId": "key:version:xx",
"components": [],
"starter": "",
"orgId": ""
}
响应实体:
{
}
流程评论
URI:/runtime/process-comments?instanceId=?
HTTP方法:POST
请求实体:
{
"content": "",
"notify": [""],
"image": []
"attachment": []
}
响应实体:
{
}
流程同意
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action" : "agree",
"mediaId": "",
"content": ""
}
响应实体:
{
}
流程同意或者终结(自由流)
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action" : "agree",
"mediaId": "",
"content": "",
"nextApprovers": [""],
"finish": true
}
响应实体:
{
}
流程拒绝
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action" : "refuse",
"content": ""
}
响应实体:
{
}
流程退回
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action" : "fallback",
"to": "previous/starter",
"content": ""
}
响应实体:
{
}
流程撤回
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action": "withdraw"
}
响应实体:
{
}
流程催办
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action": "prompt"
}
响应实体:
{
}
流程知会
URI:/runtime/tasks/:id
HTTP方法:POST
请求实体:
{
"action": "notify"
}
响应实体:
{
}
我的待办列表(包括已办)
URI:/runtime/tasks/
HTTP方法:GET
请求参数:
candidateUser候选人
keyword
start=0
limit=20
owner=userId
响应实体:
{
"data": [{
"name": "",
"creater": "",
"sn": "",
"taskId": "",
"createTime": ""
}]
}
用户代理
URI:/organistion/delegations
HTTP方法:POST
请求实体:
{
"userId": "",
"orgId": "",
"roleId": "",
"delegateTo": [],
"startTime": "",
"endTime": ""
}
响应实体:
{
}
用户代理取消
URI:/organistion/delegations/:id
HTTP方法:DELETE
用户代理查询
URI:/organistion/delegations?userId=:userId
HTTP方法:GET
响应实体:
{
"data": [{
"id": "",
"orgName": "",
"roleName": "",
"delegaters": [{
"id": "",
"name": "",
"startTime": "",
"endTime": ""
}]
}]
}
我的发起(审批中)
URI:/runtime/process-instances/
HTTP方法:GET
请求参数:
starter
keyword
start=0
limit=20
响应实体:
{
"data": [{
"name": "",
"creater": "",
"sn": "",
"taskId": "",
"createTime": ""
}]
}
我的发起(已完成)
URI:/history/historic-process-instances/
HTTP方法:GET
请求参数:
starter
keyword
start=0
limit=20
响应实体:
{
"data": [{
"name": "",
"creater": "",
"sn": "",
"taskId": "",
"createTime": ""
}]
}
根据ID获取流程详情
待办、已办列表(分页),搜索
发起流程,保存,提交
流程评论、通过、否决、退回、删除、再次发起、催办、撤回、知会、@
代理设置,取消
选人组件,组织,人员,搜索
我的发起,审批中、已完成、草稿,搜索
PC端
高级搜索
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。