API调用概述

接口地址

如果你还没有HTTP接口地址,可以先在API节点中添加一个,请参考 API节点设置

注意:这里说的HTTP接口地址不是GRPC地址,也不是管理系统地址。

如果想调用某个具体的方法,那么地址就是:

API接口地址/服务名/方法名
比如:
http://192.168.2.100/ServerService/createServer

调用方法

除了 /APIAccessTokenService/getAPIAccessToken 接口外,其他的所有接口都需要:

  1. 在HTTP Header中传递X-Cloud-Access-Token令牌数据,以便于我们认证用户是否有接口访问的权限,此令牌通过 /APIAccessTokenService/getAPIAccessToken 接口获取,具体请参考 认证 一节。
  2. 所有请求数据需要以 POST 方法上传一个完整的JSON数据,接口响应数据也是JSON数据

比如:

POST /HTTPAccessLogService/listHTTPAccessLogs
...
X-Cloud-Access-Token: n8adDybtPCAGdbORkXjfpJgL28EGkOLz
...

{
	"serverId": 23,
	"day": "20210101",
	"size": 100,
	"reverse": true
}

可以在这里查看令牌获取方法。

CURL示例

curl -v -XPOST -H"X-Cloud-Access-Token: hZFW3yg1geeKYqLPjhmi5OyAtYoKingiNoemNkqjLWIsCXJcmaHDaUL1ELX6vtPrjvwiXiTuBN9mAVK8cUhn6PpuN1eLYbtN1seAFMpf2h6aZtFgkhAxI3cYUSZIwLQg"  "http://192.168.1.6:8004/HTTPAccessLogService/listHTTPAccessLogs" -d '{
  "size":100, 
  "day":"20211217"
}'
你需要把IP地址、X-Cloud-Access-Token换成你自己的。

格式化输出

可以在HTTP Header中增加 X-Cloud-Response-Pretty: on 来让输出的JSON更加可读。

HTTP状态码

调用API后,一定 要检查API响应的HTTP状态码(注意是HTTP状态码,不是JSON里面的code),只有200才是响应成功,以下是常见的几种响应状态码错误:

  • 400 - 错误的请求格式(可能是发送的内容过大、或JSON数据格式错误)
  • 404 - API服务或方法不存在,或错误的API路径

常见问题

调用API的时候提示 Received HTTP/0.9 when not allowed 是怎么回事?

答:你没有按照本文开头部分所说的添加HTTP接口地址,请 点击这里 添加HTTP接口地址后再重试。