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