EWS OpenAPI是EWS提供给开发者和第三方平台的一种技术接入方式。我们可以通过OpenAPI管理在EWS的主机、应用、容器等资源。
联系 EWS 管理员开通OpenAPI调用权限,获得相应的accessKey和secretKey
在接口文档中找到对应接口,根据文档说明选择参数和方法,在接口前加上前缀,发送HTTP请求即可。形如如下链接可获取service_id=101的Service信息
open-ews.cloud.tmall.com/api/v1/service/101
其中 open-ews.cloud.tmall.com 为接口前缀,所有OpenAPI URL都以此前缀开头,而 v1 表示当前OpenAPI版本为v1,/service/{service_id}表示获取指定的服务
为确保OpenAPI调用过程中不被黑客恶意篡改,每一次调用API都需要在Header中携带签名。服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。
Java示例代码下载地址:点击下载
public void test() throws Exception {
StringBuilder url = new StringBuilder("接口地址");
Map<String,String> params = new HashMap<String, String>();
params.put("timestamp", System.currentTimeMillis() + "");
params.put("accesskey", "xxxxx");
String sign = SignUtils.sign("xxxxxxxxxxxx", params);
url.append(mapToGetUrl(params));
HttpGet get = new HttpGet(url.toString());
get.setHeader("Authorization",sign);
CloseableHttpResponse response = httpClient.execute(get);
}
调用OpenAPI接口返回值统一格式如下
{
"code": "0",
"message": "success",
"data":{ }
}
其中**code**和**message**分别表示此次API调用的错误码和调用信息,**data** 为接口具体返回内容
| Code | Message | 释义 |
|---|---|---|
| 0 | Success | 请求成功 |
| 1001 | InternalError | 未知异常 |
| 1002 | ParamError | 参数错误 |
| 1003 | ParamRequired | 缺少参数 |
| 1004 | SignError | 签名错误 |
| 1005 | ResourceNotExist | 资源不存在 |
| 1006 | NoPermission | 没有权限 |
| 1007 | StatusError | 状态错误 |
| 1008 | ActionNotExist | 操作不存在 |
| 1009 | Timeout | 超时 |
OpenAPI中包含部分异步接口,即API接口返回时操作可能仍未完成(如启动应用)。要了解异步接口的执行情况,可在接口调用后进行查询。异步接口返回内容包含此次接口调用的Command信息,我们可以根据Command接口查询此次接口调用情况。
调用启动容器接口
curl -d '' -H 'Authorization: xxx' open-ews.cloud.tmall.com/api/v1/node/610474/start
接口返回Command信息
{
"code": "0",
"message": "success",
"data": {
"commandId": "11f60951-ca0b-4546-b278-50b140111b1a",
"name": "node_start",
"status": "CREATED",
"result": "",
"resultMsg": "",
"createTime": "2016-06-24 16:40:53",
"endTime": "",
"activitys": []
}
}
根据返回内容中的commandId查询对应接口执行情况,返回内容详见CommandInfo接口
curl -H 'Authorization: xxx' open-ews.cloud.tmall.com/api/v1/command/11f60951-ca0b-4546-b278-50b140111b1a