# **API架构**
AWS 对每次API请求都进行一次完整的安全验证,验证处理过程与开发者选择的API技术协议有关(如选择HTTP或SOAP)。下图是一个抽象的API架构图:
![](https://img.kancloud.cn/0c/db/0cdb7f8302fc5fea841ec35078cdb0a4_1712x1040.png)
**请求处理过程**
1. 发起请求
2. 因安全或请求非法被拒绝
3. 调用AWS PaaS的本地接口封装
4. 将处理结果以JSON/XML文档返回
# **API接入方法**
## **1. HTTP(s) API接入**
HTTP(s) API又叫Web API,开发者可以通过HTTP形式发起请求,获取JSON或XML的处理结果。由于HTTP被广泛的编程语言支持,开发者可以基于此HTTP形式与各种语言的企业应用进行交互。
在调用这类API之前,开发者需要向管理员申请API密钥,该秘钥由AWS CC的秘钥身份进行管理。包括访问凭证 ( access_key ) 和 私钥 ( secret )。
access_key将作为参数包含在每一个请求中发送,而secret负责生成请求串的签名,**secret需要妥善保管,请勿外传。**
### 1.1 技术规格
项|说明
--|--
访问协议|HTTPS/HTTP
提交方式|POST/GET,推荐POST
业务参数|JSON
返回结果|JSON/XML
编码格式|UTF-8
### **1.2 API请求结构**
项|说明
--|--
API入口|Portal URL + /openapi,例如:https://b2b.awspaas.com/openapi
公共参数|- cmd api名称(必须)<br>- access_key 访问凭证(必须)<br>- sig 请求消息的签名(必须),<b>详见下说明</b><br>- sig_method 签字算法,支持:HmacMD5<br>- format 处理结果数据格式。支持json和xml,默认为json<br>- timestamp 请求时间,long型毫秒值,默认和服务器事件不能超过6分钟
业务参数|一个json串,见相关API的说明文档
### **1.3 API请求样例及接入说明**
一个典型的API请求如下所示,这是一个 app.install.check 的API请求
```
https://b2b.awspaas.com/openapi
?timestamp=1439277618461
&sig_method=HmacMD5
&cmd=app.install.check
&appId=com.actionsoft.apps.notification
&access_key=Salesforce#1
&format=json
&sig=DE90336BEDB0C3D3FE6DEE2FF0DF11AC
```
### **1.4 API返回结构**
由请求参数format指定的数据格式,默认为json串。例如在Java客户端中,该参数运用如下:
```
//返回JSON结构
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret);
//或者
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret,
OpenApiClient.FORMAT_JSON);
//返回XML结构
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret,
OpenApiClient.FORMAT_XML);
```
项|说明
--|--
result|状态码。ok代表成功,error代表失败
errorCode|错误码
msg|结果信息。如果result值为error时,提供错误描述信息
data|业务数据
### **1.5 API返回样例**
一个典型的API请求返回结果如下所示
这是一个 app.install.check API的JSON结果
```
{
"data" : true,
"result" : "ok"
}
```
这是一个 app.install.check API的XML结果
```
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<boolResponse>
<data>true</data>
</boolResponse>
```
### **1.6 接入调用说明**
#### 1.获取秘钥
开发者在完成每次HTTP API调用前,API发起的URL中需要带上sig参数。sig参数是秘钥access_key和secret及参数串的签名。秘钥由AWSCC的秘钥身份进行管理,开发者可以向管理员申请API密钥,包括访问凭证 ( access_key ) 和 私钥 ( secret )。
![](https://img.kancloud.cn/c6/a7/c6a71ec549461fdce6d63f6741fb4459_2422x1330.png)
#### 2.使用AWS HTTP SDK for Java API工具包(Java语言可使用此方法,其他语言见 第三点)
这是我们为Java开发者提供的HTTP API客户端开发工具包(AWS HTTP SDK for Java API工具包),可以简化对HTTP API的使用,也无需考虑URL签名过程。(依赖jar文件可在调用时联系管理员获取)
jackson类库用于处理json到Java对象的转换处理。建议使用AWS PaaS平台默认提供的相关资源:
```
* webserver/webapps/portal/WEB-INF/lib/jackson-core-2.4.1.jar
* webserver/webapps/portal/WEB-INF/lib/jackson-databind-2.4.1.jar
* webserver/webapps/portal/WEB-INF/lib/jackson-module-jaxb-annotations-2.5.2.jar
* webserver/webapps/portal/WEB-INF/lib/jackson-annotations-2.4.0.jar
```
##### 2.1 JAVA客户端示例代码
**OpenApiClient构造函数**
```
//返回JSON结果
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret,OpenApiClient.FORMAT_JSON);
//返回XML结果
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret,OpenApiClient.FORMAT_XML);
//返回对象结果(不同API封装的结果对象不同,见示例代码)
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret);
BoolResponse r = client.exec(apiMethod, args, BoolResponse.class);
```
**示例**
```
//API入口
String apiServer = "https://b2b.awspaas.com/openapi";
String accessKey = "Salesforce#1";
String secret = "0a799959-8327";//注意保密
String apiMethod = "bo.query";//API方法,cmd参数
//API请求参数
Map<String, Object> args = new HashMap<String, Object>();
args.put("boName","BO_ACT_TEST" );
//构建客户端
OpenApiClient client = new OpenApiClient(apiServer, accessKey, secret);
//执行并获得查询结果
ListMapResponse r = client.exec(apiMethod, args, ListMapResponse.class);
List bos = r.getData();
if (bos != null) {
for(int i=0;i<bos.size();i++){
//...
}
}
```
#### 3.通过签名URL请求,完成API调用(其他语言)
签名的目标是由开发者在API客户端计算出系列参数组合的哈希值,将产生的信息添加到URL请求的sig参数。
##### 3.1 获得秘钥
这里介绍API请求中签名 ( sig ) 的生成方法。签名需要开发者先在控制台创建API密钥 ,获得访问凭证 ( access_key ) 和私钥 ( secret ),这里我们假设
```
access_key = 'Salesforce#1'
secret = '0a799959-8327'
```
##### 3.2 计算签名
例如API请求参数如下(这是一个 app.install.check API):
```
{
"timestamp":"1439279383630",
"sig_method":"HmacMD5",
"cmd":"app.install.check",
"appId":"com.actionsoft.apps.notification",
"access_key":"Salesforce#1",
"format":"json"
}
```
###### 1. 按参数名进行升序排列
准备参数。范围:cmd,access_key,timestamp,format,sig_method和业务参数(见API输入参数文档),其中不包括空值参数排序后的参数为:
```
{
"access_key":"Salesforce#1",
"appId":"com.actionsoft.apps.notification",
"cmd":"app.install.check",
"format":"json",
"sig_method":"HmacMD5",
"timestamp":"1439279383630"
}
```
###### 2. 构造签名串
以secret字符串开头,追加排序后参数名称和值,格式:secretkey1value1key2value2...
应用到上述示例得到签名串为(注意:签名串中间没有空格分割):
```
0a799959-8327access_keySalesforce#1appIdcom.actionsoft.apps.notificationcmdapp.install.checkformatxmlsig_methodHmacMD5timestamp1439277618461
```
###### 3. 计算签名
计算被签名串加密的签名。将API密钥的私钥 (secret) 作为key,生成被签名串的 HmacMD5签名
将签名得到的16字节依次转化为大写的16进制字符串,如果字符串长度为1,在前补0,结果为32位字符串,例如:050CC7A1C04487EAE1197C31D28B7E37
###### 4. 添加签名
将计算的签名值以sig参数名,附加到URL请求中。一个典型的API请求如下所示
这是一个 app.install.check 的API请求
```
https://b2b.awspaas.com/openapi?timestamp=1439277618461
&sig_method=HmacMD5
&cmd=app.install.check
&appId=com.actionsoft.apps.notification
&access_key=Salesforce#1
&format=json
&sig=DE90336BEDB0C3D3FE6DEE2FF0DF11AC
```
## **2.SOAP API接入**
SOAP API即Web Service。开发者可以通过HTTP传输协议发送SOAP格式的请求消息获得XML结构的处理结果。
在调用这类API之前,开发者需要向管理员申请API密钥,该秘钥由AWS CC的秘钥身份进行管理。包括用户名和密码及增强安全策略。
用户名和密码的传输需要遵循WS-Security的用户名密码类型令牌规范,**密码需要妥善保管,请勿外传**。
### **2.1 技术规格**
项|说明
--|--
Transports|HTTPS/HTTP
JSR|Java API for XML-Based Web Services (JAX-WS) 2.0 - JSR-224<br>Web Services Metadata for the Java Platform - JSR-181<br>SOAP with Attachments API for Java (SAAJ) - JSR-67
WS-*和相关规范|WS-I Basic Profile 1.1<br>WS-Reliable Messaging<br>WSDL 1.1<br>WS-Security<br>SOAP 1.1, SOAP 1.2<br>Message Transmission Optimization Mechanism (MTOM)<br>JAXB 2.x
### **2.2 API请求结构**
项|说明
--|--
API入口|Portal URL + /openapi,例如:https://b2b.awspaas.com/openapi
查询参数|- service 值为服务ID(必须),例如appApi<br>- wsdl true/false,是否返回WSDL(可选)
业务参数|一个json串,见相关API的说明文档
### **2.3 API请求样例及接入说明**
一个典型的API请求如下所示,这是一个 isInstalled 的SOAP API请求
```
<soap:Envelope xmlns:ser="http://service.sdk.actionsoft.com/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<ser:isInstalled>
<appId>com.actionsoft.apps.notification</appId>
</ser:isInstalled>
</soap:Body>
</soap:Envelope>
```
### **2.4 API返回结构:**
项|说明
--|--
result|状态码。ok代表成功,error代表失败
errorCode|错误码
msg|结果信息。如果result值为error时,提供错误描述信息
data|业务数据
### **2.5 API返回样例**
一个典型的SOAP API请求返回结果如下所示
这是一个 isInstalled 的SOAP API服务返回结果
```
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:isInstalledResponse
xmlns:ns1="http://service.sdk.actionsoft.com/">
<return
xmlns:ns2="http://service.sdk.actionsoft.com/">
<data>true</data>
</return>
</ns1:isInstalledResponse>
</soap:Body>
</soap:Envelope>
```
### **2.6 接入调用说明**
#### 1.获取秘钥
秘钥由AWS CC的秘钥身份进行管理,开发者可以向管理员申请API密钥,包括用户名和密码。
![image](DFA9D6CE13EE4B9485E309040650D825)
#### 2.使用SoapUI工具调用
SoapUI是一个开源测试工具,希望快速熟悉SOAPAPI的开发者,也可以使用这个客户端测试每个API。
**场景**
调用appApi服务的isInstalled方法判断AWS PaaS是否安装了某个应用。假定SOAP安全策略配置为用户名密码认证、密码加密传输
```
用户名:Salesforce#1
密码:0a799959-8327
```
**步骤**
**1.创建soapUI工程,File > new soapUI Project**
![](https://img.kancloud.cn/c8/a2/c8a2ce71e81d13211aff4d327467530e_979x613.png)
**2.配置参数及认证用户名密码**
![](https://img.kancloud.cn/ae/c8/aec8ed8eab6afc803a5df62fc3454de4_797x527.png)
![](https://img.kancloud.cn/34/18/34189d958df03cfbda119bfb832e321b_986x641.png)
**3.运行查看结果**
![](https://img.kancloud.cn/cc/49/cc4970c2af92bcc5fac345817fda6976_1254x774.png)
#### 3.使用CXF客户端调用
**场景**
调用appApi服务的isInstalled方法判断AWS PaaS是否安装了某个应用。假定服务端配置用户名密码认证、密码加密传输
```
用户名:Salesforce#1
密码:0a799959-8327
```
**完整的CXF示例代码**
```
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.security.auth.callback.Callback;
import javax.security.auth.callback.CallbackHandler;
import javax.security.auth.callback.UnsupportedCallbackException;
import org.apache.cxf.endpoint.Client;
import org.apache.cxf.frontend.ClientProxy;
import org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSPasswordCallback;
import org.apache.ws.security.handler.WSHandlerConstants;
import com.actionsoft.sdk.service.AppApi;
import com.actionsoft.sdk.service.AppApiPortType;
import com.actionsoft.sdk.service.BoolResponse;
public class AppApiClient {
public static void main(String[] args) {
// 构造拦截器,设置用户名密码属性和认证类型
Map<String, Object> outProps = new HashMap<String, Object>();
outProps.put(WSHandlerConstants.ACTION,
WSHandlerConstants.USERNAME_TOKEN);
//outProps.put(WSHandlerConstants.PASSWORD_TYPE,
WSConstants.PW_TEXT);//密码明文还是密文,不设置时默认密文
outProps.put(WSHandlerConstants.USER, "Salesforce#1");
outProps.put(WSHandlerConstants.PW_CALLBACK_REF, new UTSetPasswordCallback());
WSS4JOutInterceptor interceptor = new WSS4JOutInterceptor(outProps);
// 注入cxf的拦截器增加用户名密码
AppApi api = new AppApi();
AppApiPortType port = api.getAppApiPort();
Client client = ClientProxy.getClient(port);
client.getOutInterceptors().add(interceptor);
// 服务方法调用
BoolResponse r = port.isInstalled("com.actionsoft.apps.notification");
// 业务异常判断
if (r.getErrorCode() == null) {
System.out.println(r.isData());
} else {
System.out.println(r.getErrorCode() + "," + r.getMsg());
}
}
private static class UTSetPasswordCallback implements CallbackHandler {
public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
if ("Salesforce#1".equals(pc.getIdentifier())) {
pc.setPassword("0a799959-8327");
return;
}
}
}
}
}
```
**Simple Frontend Client Proxy(CXF私有调用方式)**
```
import org.apache.cxf.frontend.ClientProxyFactoryBean;
...
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
factory.setServiceClass(AppApiPortType.class);
factory.setAddress("http://localhost:8088/portal/r/s?service=appApi");
AppApiPortType client = (AppApiPortType) factory.create();
```
#### 4. 使用JDK自带WebService框架
**注意:**
1. JDK1.6或更高版本才提供Web Service实现。
2. 目前JDK对WS-*规范的支持不够完善,例如发送WS-Security规范要求的用户名密码时需要借助其它服务框架,因此本章没有安全验证。(AWS PaaS提供的官方SOAP API要求必须有用户名密码验证,因此本章节调用方式不支持由AWS PaaS提供的官方SOAP API)
**JAX-WS Proxy方式调用服务步骤**
1. 准备JDK1.6或以上版本
2. 生成服务客户端文件
使用JDK bin目录下的wsimport命令生成服务客户端文件,如果不指定。示例:
```
wsimport -keep -clientjar app_service_client.jar "http://localhost:8088/portal/r/s?service=appApi&wsdl=true"
```
3. 获得服务和代理对象
在生成的app_service_client.jar中有2个重要的类,如下:
项|说明
--|--
AppApi|AppApi是服务类,继承javax.xml.ws.Service,它的名字默认和wsdl中服务名称对应,wsdl:service的name属性,该类用于创建服务对象实例
AppApiPortType|AppApiPortType类是该服务的SEI(service endpoint interface),可以得到代理对象实例
AppApi的构造函数中可以指定3个参数:
项|说明
--|--
java.net.URL wsdlDocumentLocation|WSDL路径,默认使用app_service_client.jar中备份的生成源WSDL
QName serviceName | 该参数指定调用哪个服务
WebServiceFeature... features | 服务的特殊功能或者处理,例如MTOMFeature可以指定是否优化附件传输
通过生成的服务类获得代理对象的代码示例:
```
AppApi api = new AppApi();
AppApiPortType port = api.getAppApiPort();
```
通过javax.xml.ws.Service和SEI得到代理对象:
```
URL wsdlURL = new URL("http://localhost:8088/portal/r/s?service=appApi&wsdl=true");
QName SERVICE_NAME = new QName("http://service.sdk.actionsoft.com/", "AppApi");
Service service = Service.create(wsdlURL, SERVICE_NAME);
AppApiPortType client = service.getPort(AppApiPortType.class);
```
4. 通过代理对象调用服务
```
AppApiPortType client = service.getPort(AppApiPortType.class);
BoolResponse result = client.isInstalled("com.actionsoft.apps.notification");
```
**JAX-WS Dispatch方式调用服务步骤**
1. 准备JDK1.6或以上版本
2. 获得服务和Dispatch对象
3. 通过Dispatch对象调用服务
```
import java.net.URL;
import javax.xml.transform.Source;
import javax.xml.ws.Dispatch;
import javax.xml.ws.Service;
...
URL wsdlURL = new URL("http://localhost:8088/portal/r/s?service=appApi&wsdl=true");
Service service = Service.create(wsdlURL,
new QName("http://service.sdk.actionsoft.com/", "AppApi"));
Dispatch<Source> disp = service.createDispatch(
new QName("http://service.sdk.actionsoft.com/",
"AppApiPort"), Source.class, Service.Mode.PAYLOAD);
Source request = new StreamSource("<appId>com.actionsoft.apps.notification</appId>")
Source response = disp.invoke(request);
```
- 概述
- OpenAPI使用方法
- 应用管理(AMC)接口
- 从开发小组中删除一个成员
- 添加一个成员到开发小组中
- App应用接口
- 获得app在当前AWS节点实例(JVM)的上下文对象
- 判断指定的应用是否已安装
- 判断指定的应用是否已启动
- 获得应用自定义的系统参数值
- 保存应用自定义的系统参数值
- 向指定App发送一条调试信息日志
- 向指定App发送一条警告信息日志,并输出至命令行屏幕
- 向指定App发送一条警告信息日志,并输出至命令行屏幕(2)
- 向指定App发送一条错误信息日志和解决方案建议,并输出至命令行屏幕
- 向指定App发送一条错误信息日志,并输出至命令行屏幕
- 获得I18N值(sid)
- 获得I18N值
- BO操作接口
- 为指定的BO表新增记录,该API适用于流程实例驱动的数据记录
- (批量)为指定的BO表新增记录,该API适用于流程实例驱动或DW仅存储实例驱动的数据记录
- (批量)为指定的BO表新增记录,该API适用于纯数据迁移和查询、利用,不能由流程实例或仅存储实例驱动
- 为指定的BO表新增记录,该API适用于纯数据迁移和查询、利用,不能由流程实例或仅存储实例驱动
- 删除一条BO表记录
- 删除与某流程实例相关的BO表记录
- 更新一条BO表记录,更新的BO数据ID需要在Map中指定,KEY要求大写
- (批量)根据流程实例更新BO数据
- 根据BOID查询指定字段的值
- 根据BOID查询一条BO数据,返回Json格式的字符串
- 获取指定附件字段已上传的全部文件列表
- 读取指定文件内容
- 将文件上传到BO表的指定字段并设置formFile附加信息,formFileModel的id不为空时执行更新操作,content为null,则只更新其他相关附属信息,如remark
- 批量删除指定字段的所有文件
- 删除指定id的附件
- BO数据查询方法
- DC存储接口
- 下载一个附件
- 上传一个附件
- 任务委托/代理(Delegation Task Instance)接口
- 通过角色创建委托申请
- 通过修改委托代理人账户列表
- 创建一个委托申请,如果scopeType=1,必须指定scope列表
- 删除一个委托申请
- 修改委托代理人账户列表
- 修改委托代理人失效时间
- 通过id获取委托申请
- 获得指定代理人的有效委托列表
- 表单访问和操作接口
- 返回完整的带有工具栏的表单
- 返回表单页面URL
- 返回表单页面
- 获取流程跟踪URL
- 返回完整的带有工具栏的表单URL
- 通知中心接口
- 系统消息是否可用
- 发送一封内部电子邮件。要正常使用该API,需要当前AwsPaaS安装了"内部邮件"应用(appId:com.actionsoft.apps.email)
- 发送一封含附件的互联网电子邮件(同步)
- 给用户发送一条消息。要正常使用该API,需要当前AWS PaaS安装了"通知中心"应用(appId:com.actionsoft.apps.notification)
- 以admin身份给用户发送一条系统消息。要正常使用该API,需要当前AWS PaaS安装了"通知中心"应用(appId:com.actionsoft.apps.notification)
- 发送一封含附件的互联网电子邮件(异步)
- 组织机构接口
- 获得一个用户对象
- 通过id获得一个用户对象
- 将可能含有账户别名的字符串处理成合法的登录账户名
- 将可能含有多个账户别名的字符串处理成合法的登录账户名字符串
- 将可能含有多个账户别名的字符串处理成用户对象
- 将一组AWS登录账户名转换成友好的账户别名
- 通过split将一组AWS登录账户(或含有别名的登录账户)转换成姓名
- 将一组AWS登录账户(或含有别名的登录账户)转换成姓名
- 检查一组AWS登录账户合法性,将不合法的账户返回
- 在uid所能访问的所有账户范围中搜索用户,返回匹配登录名、姓名或姓名拼音首写字母的结果
- 按部门查询用户对象
- 获取部门下兼职的用户对象
- 按部门查询用户对象(包含兼职)
- 获得部门下用户数
- 按角色查询用户对象
- 按角色查询用户对象,包含兼职到参数指定的角色的用户
- 按部门查询有管理者身份的人
- 是否有部门管理者身份
- 创建账户
- 更新一个账户属性
- 注销账户
- 激活用户
- 删除用户
- 账户移动部门
- 设置管理者身份
- 初始化用户密码
- 重设用户密码
- 删除用户
- 更新用户角色
- 取消管理者身份
- 创建一个账户兼任信息
- 查询用户兼任列表
- 获得部门兼任列表
- 创建一个新角色
- 删除角色
- 更新角色
- 获得角色列表
- 获得角色
- 获得一个角色对象
- 通过分类名获得角色列表
- 通过账户名获得一个角色对象
- 新建团队
- 更新团队名称
- 移除团队小组
- 获得团队列表
- 获得团队成员
- 添加团队小组成员
- 新建部门
- 获得指定部门所在的行政区域划分,如果当前部门没有 设定,则自动向上寻找
- 合并指定部门到另一个部门
- 合并多个部门到目标部门。注意,仅合并指定的源部门,不包含子部门
- 移动一个部门位置到单位下(id不变),该部门下的子部门layer也会级联改变
- 移动一个部门位置(id不变),该部门下的子部门layer也会级联改变
- 删除兼任
- 获得部门对象
- 是否存在子部门
- 获得指定部门的下级部门
- 获得一个部门对象
- 更新部门
- 注销部门,注销后不再显示该部门及子部门和人员信息
- 激活注销的部门
- 删除部门
- 新建单位
- 更新一个单位信息
- 注销单位,注销后不再显示该单位及单位以下的部门和人员信息
- 激活注销的单位
- 删除团队成员
- 获得一个单位对象方式一
- 获得单位列表
- 删除单位
- 获取用户所有兼职单位方式一
- 获取用户所有兼职单位方式二
- 获得一个单位对象方式二
- 判断某用户对于某单位是否有AC权限
- 权限接口
- 追加一个AC授权。操作结果,返回true表示成功,返回false表示失败
- 创建一个权限组
- 为权限组创建一个权限资源
- 为分配对象创建一个授权
- 是否为平台管理员
- 根据resourceType返回该类资源的AC插件配置对象
- 判断是否设置了AC授权
- 删除某资源的AC授权信息
- 获得为resourceType/resourceId分配的访问权限列表
- 获得为resourceType/resourceId/accessMode分配的访问权限列表
- 获得user能访问的某类资源集合
- AC授权验证
- 判断是否有流程启动权限
- 判断是否有移动策略配置访问权限
- 判断是否有移动应用访问权限
- 判断是否有导航菜单访问权限
- 删除一个权限组,同时与该权限组相关的资源项、分配定义等一并删除
- 删除一个权限资源
- 清空一个权限组的全部资源定义
- 删除与指定权限组Id有关的全部权限分配
- 删除与角色有关的全部权限分配
- 删除与账户有关的全部权限分配
- 身份验证和门户接口
- 设置用户的头像,头像默认大小120x120,如果上传超过这个大小,会根据传入参数裁剪
- 获得指定用户可访问的导航树全部功能菜单定义
- 获得指定用户可访问的下一级功能菜单定义
- 获取子系统导航下的所有功能菜单定义
- 根据AWS平台配置策略,是否允许个人修改口令
- 根据AWS平台三员安全的配置策略,当前是否到了要修改口令的时间。用于配合门户皮肤在登录系统时检查,弹出强行修改口令的对话框
- 个人配置信息必填项
- 获得指定账户头像URL资源,如果该用户未设置,给出一个默认头像
- 获得指定用户的基本信息资料
- 保存个人基本信息,该API只允许更新个人资料
- 创建默认属性的用户会话
- 创建一个PC端BPM客户端用户会话
- 创建一个新的BPM客户端用户会话
- 检查session有效性,如果有效则刷新一次session
- 刷新一次session,延长session生命周期
- 注销一个会话
- 获得当前用户前n条的登录日志
- 获得用户自定义的参数结构
- 设置用户自定义的参数结构
- 获得用户自定义的参数项
- 设置用户自定义的参数项
- 判断账户当前是否在线,返回平台提供的图标url
- 返回当前系统有效的在线用户列表
- 返回当前有效的在线用户数量
- 判断指定账户是否在线
- 判断指定账户是否在线
- 改变用户界面语言
- 流程实例控制接口
- 创建一个流程实例
- 创建一个短流程实例
- 创建一个仅存储实例控制
- 创建一个常规子流程实例
- 读取变量值
- 读取变量值
- 读取流程变量列表
- 通过processBusinessKey读取变量值列表
- 设置流程变量值
- 通过processBusinessKey为流程变量赋值
- 设置流程变量列表
- 通过processBusinessKey为流程变量赋值
- 通过id启动流程
- 通过processBusinessKey启动流程
- 通过id流程复活,重新激活已结束的流程实例
- 通过processBusinessKey流程复活,重新激活已结束的流程实例
- 通过id重置流程到第一个节点,将任务创建给流程启动者,等同于由启动者撤销重办业务(适用于开始事件后是UserTask的人工流程)
- 通过processBusinessKey重置流程到第一个节点,将任务创建给流程启动者,等同于由启动者撤销重办业务( 适用于开始事件后是UserTask的人工流程)
- 通过id恢复被挂起的流程实例
- 通过processBusinessKey恢复被挂起的流程实例
- 通过id挂起流程实例
- 通过processBusinessKey挂起流程实例
- 通过id终止一个流程实例
- 通过processBusinessKey终止一个流程实例
- 通过id删除流程实例,与流程实例(及子流程实例嵌套)相关的业务数据、控制数据、变量等全部删除
- 通过processBusinessKey删除一个流程实例,与流程实例(及子流程实例嵌套)相关的业务数据、控制数据、变量等全部删除
- 通过id取消流程,终止并补偿一个流程实例
- 通过processBusinessKey取消流程,终止并补偿一个流程实例
- 通过id判断流程实例是否被挂起
- 通过processBusinessKey判断流程实例是否被挂起
- 通过id判断流程实例是否允许撤销重办
- 通过processBusinessKey判断流程实例是否允许撤销重办
- 通过processBusinessKey判断流程实例是否已结束
- 判断流程实例是否已结束
- 设置流程实例关联的高级分类规则
- 设置流程实例扩展参数值
- 通过Id获得流程实例的历史参与者账户列表
- 通过processBusinessKey获得流程实例的历史参与者账户列表
- 获得一个流程实例对象
- 通过id统计流程处于活动状态的任务数量
- 通过processBusinessKey统计流程处于活动状态的任务数量
- 获得一个流程实例对象
- 通过Id获得流程实例的审批留言记录
- 通过processBusinessKey获得流程实例的审批留言记录
- 查询流程实例
- 查询流程实例
- 查询流程实例数
- 通过Id给当前办理者发送催办邮件(有外部邮箱配置的用户,优先发送外部邮件)
- 通过processBusinessKey给当前办理者发送催办邮件(有外部邮箱配置的用户,优先发送外部邮件)
- AWS模型元数据仓库接口
- 创建一个URL表单
- 修改一个URL表单模型
- 返回一个人工任务节点的JSON结构
- 获取流程实例的跟踪URL
- 获取流程信息
- 获取表单绑定的URL
- 删除一个表单
- 流程扩展属性,一个自定义的字符串
- 流程说明
- 获得流程的主版本Id
- 获得发布运行的流程版本Id
- 符合BPMN2规范的流程定义文件
- 返回base64字符串
- 返回流程跟踪图的URL
- API错误码