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