# 云应用操作接口
# 通用接口
# 检查应用名是否可用
# 接口描述
在创建应用时,需要传入应用的二级域名前缀,由于二级域名前缀全局唯一,此接口可以用于判断应用名是否可用。
# 接口地址
https://api.sinaapp.com/v2app/checkAppnameAvailable.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,表示应用名可以使用,返回值如下:
{
"code": 0,
"data": true
}
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 1004,
"message": "当前应用名不允许注册,已被注册或者不符合条件,请更换。",
"url": "\/v2app\/checkAppnameAvailable.json"
}
# 删除应用
# 接口描述
删除应用,将应用加到待删除的队列。
# 接口地址
https://api.sinaapp.com/v2app/deleteApp.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,表示应用名可以使用,返回值如下:
{
"code": 0,
"data": true
}
请注意
应用加到删除队列后,有一天的缓冲时间,一天后应用会被彻底删除。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 7002,
"message": "当前应用已经在等待删除或者删除中,请勿重复删除。",
"url": "\/v2app\/deleteApp.json"
}
# 容器环境应用接口
# 创建基于镜像的docker应用
# 接口描述
创建一个基于镜像启动的云应用。
# 接口地址
https://api.sinaapp.com/v2app/dockerImageAppCreate.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
image | 是 | POST | 容器的镜像地址,例如nginx:latest |
cid | 是 | POST | 容器的配置,例如1 |
container_numbers | 是 | POST | 启动的容器的数量,支持1-32之间的数字,例如1 |
environment_variable | 否 | POST | 环境变量,以JSON数组的方式传递,例如{"TEST_ENV":1},系统保留了一些环境变量的key,保留的key不能使用,具体请参考下表。 |
expose_port | 否 | POST | 开放的端口,允许1-65535,不传默认值为5050端口 |
关于开放的端口
如果启动的镜像中指定了开放的端口,则忽略指定的expose port参数,自动探测镜像开放的第一个端口为负载均衡到容器映射的端口。
# 系统保留的环境变量列表
编号 | 环境变量key |
---|---|
1 | PORT |
2 | ACCESSKEY |
3 | SECRETKEY |
4 | MYSQL_HOST |
5 | MYSQL_HOST_S |
6 | MYSQL_PORT |
7 | MYSQL_DB |
8 | MYSQL_USER |
9 | MYSQL_PASS |
10 | MEMCACHE_SERVERS |
11 | KVDB_SERVERS |
12 | APPNAME |
13 | SINACLOUD_CONTAINER_MEMORY |
14 | SINACLOUD_CONTAINER_CPU |
15 | PRICE |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 1004,
"message": "当前应用名不允许注册,已被注册或者不符合条件,请更换。",
"url": "\/v2app\/dockerImageAppCreate.json"
}
# 查询容器应用的状态
# 接口描述
查询运行在容器环境的应用的容器运行状态,如果应用不是运行在容器环境,不允许调用。
# 接口地址
https://api.sinaapp.com/v2app/dockerAppStatus.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要查询状态的应用名,例如apidocker5 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"init_status": 1,
"containers": [
{
"ID": 104601,
"CreatedAt": "2018-11-19T04:36:10Z",
"UpdatedAt": "2018-11-19T06:31:54Z",
"DeletedAt": null,
"ControllerID": 70232,
"NodeIp": "10.13.144.179",
"RoleConfig": {
"HostIP": "10.13.144.179",
"HostPort": "18722"
},
"Status": "RUNNING",
"Domains": [],
"mount_count": 0,
"usage": {
"Cpu_percent": 0.2747458,
"Cpu_usage": 29007318807,
"Disk_quota": 5357699072,
"Disk_usage": 1179856896,
"Mem_limit": 268435456,
"Mem_usage": 245846016,
"Swap_limit": 268435456,
"Swap_usage": 999424,
"disk_usage": 22,
"mem_usage": 92,
"disk_usage_flag": "success",
"mem_usage_flag": "exception",
"Disk_usage_zh": "1.1G",
"Disk_quota_zh": "5G",
"Mem_usage_zh": "234.5M",
"Mem_limit_zh": "256M"
},
"create_timeline": "2018-11-19 12:36:10",
"update_timeline": "2018-11-19 14:31:54",
"start_time_display": "24分钟",
"status_flag": "ok",
"status_zh": "运行中"
}
],
"containers_count": 1,
"cid": 1,
"instance_number": 1,
"default_expose_port": 5050
}
}
状态值意义如下:
字段 | 说明 |
---|---|
init_status | 0或者1,0表示容器实例没有创建,1表示已经创建 |
containers | 容器列表,数组 |
container.Status | 容器的状态,RUNNING表示运行中、PENDING表示处理中、STOPPED表示已停用、其他的状态表示异常 |
container.mount_count | 容器下挂载的存储的总数 |
container.create_timeline | 容器的创建时间 |
container.update_timeline | 容器的最后一次变更时间 |
container.usage | 容器当前时刻的资源使用情况 |
container.usage.Cpu_percent | CPU使用率,单位% |
container.usage.Disk_quota | 磁盘的大小配额,单位Byte |
container.usage.Disk_usage | 本地磁盘已经使用的大小,单位Byte |
container.usage.Mem_limit | 内存的大小限制,单位Byte |
container.usage.Mem_usage | 当前时刻使用的内存大小,单位Byte |
container.usage.disk_usage | 本地磁盘使用比例,单位% |
container.usage.Swap_usage | 当前时刻swap使用的大小,单位Byte |
container.usage.Swap_limit | swap的限制,单位Byte |
containers_count | 正在运行的容器的总数 |
cid | 当前设置的容器的配置 |
instance_number | 指定的容器的实例个数 |
default_expose_port | 默认expose的端口 |
关于expose的端口
如果容器的类型是基于镜像启动的,镜像中expose了多个端口,系统将用您expose的第一个端口覆盖这里设定的default_expose_port。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 2002,
"message": "您没有权限管理当前应用。",
"url": "\/v2app\/dockerAppStatus.json"
}
# 修改容器环境应用的实例数
# 接口描述
修改容器环境的实例数量。
请注意
容器虚拟机的应用实例个数只能为1,不能修改为多个。
# 接口地址
https://api.sinaapp.com/v2app/changeInstanceNumber.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_replicas | 是 | POST | 新的容器实例的个数,支持1-32,不能和当前的实例个数一致 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 3006,
"message": "和当前的容器的实例个数一致,无需修改。",
"url": "\/v2app\/changeInstanceNumber.json"
}
# 修改容器环境应用的配置
# 接口描述
修改容器环境的配置。
# 接口地址
https://api.sinaapp.com/v2app/changeInstanceCid.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_cid | 是 | POST | 新的容器实例的配置,不能和当前的配置一致 |
关于new_cid
当前可用的cid配置可以从查询所有的容器型号处获取。
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
请注意
修改容器实例的配置后,容器会重启。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 3006,
"message": "和当前的容器的实例配置一致,无需修改。",
"url": "\/v2app\/changeInstanceCid.json"
}
# 修改容器环境应用默认暴露的端口
# 接口描述
修改容器环境的expose 端口。
# 接口地址
https://api.sinaapp.com/v2app/changeExposePort.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
expose_port | 是 | POST | 新的expose端口,范围为1-65535 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
请注意
修改容器expose的端口后,需要重启容器才能生效。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 7001,
"message": "开放的端口只能在1-65535之间。",
"url": "\/v2app\/changeExposePort.json"
}
# 暂停容器环境应用容器
# 接口描述
暂停容器操作会暂时停止正在运行的实例,暂停的容器可以重启。
# 接口地址
https://api.sinaapp.com/v2app/stopContainer.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
请注意
暂停容器后,容器中托管的进程会退出、应用通过域名访问会提示“应用已关闭”。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 5005,
"message": "当前实例的容器状态非RUNNING,不支持暂停操作。",
"url": "\/v2app\/stopContainer.json"
}
# 重启容器环境应用容器
# 接口描述
重启容器环境的应用,可以重启已经暂停或者正在运行的容器。
# 接口地址
https://api.sinaapp.com/v2app/restartContainer.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
请注意
如果应用没有容器实例或者应用所在的账户已经欠费,则不允许执行重启操作。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 5002,
"message": "只有容器环境的应用才可以使用当前接口。",
"url": "\/v2app\/restartContainer.json"
}
# 获取容器环境应用环境变量
# 接口描述
获取容器环境应用的环境变量列表。
# 接口地址
https://api.sinaapp.com/v2app/dockerAppEnvs.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"PORT": "80",
"ACCESSKEY": "*********",
"SECRETKEY": "***************",
"MYSQL_HOST": "w.rdc.sae.sina.com.cn",
"MYSQL_HOST_S": "r.rdc.sae.sina.com.cn",
"MYSQL_PORT": "3307",
"MYSQL_DB": "app_tests3",
"MYSQL_USER": "*********",
"MYSQL_PASS": "***************",
"MEMCACHE_SERVERS": "memcache.sae.sina.com.cn:11211",
"KVDB_SERVERS": "10.67.21.65:9190,10.67.21.61:9190",
"APPNAME": "tests3",
"SINACLOUD_CONTAINER_MEMORY": "268435456",
"SINACLOUD_CONTAINER_CPU": "2",
"PRICE": "1"
}
}
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 5002,
"message": "只有容器环境的应用才可以调用。",
"url": "\/v2app\/dockerAppEnvs.json"
}
# 增加或者替换容器环境应用环境变量
# 接口描述
增加或者替换容器环境应用的环境变量。
# 接口地址
https://api.sinaapp.com/v2app/replaceAppEnv.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀 |
env_key | 是 | POST | 环境变量的key,不能使用系统保留的key列表 |
env_value | 是 | POST | 环境变量的值 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
请注意
增加或者替换环境变量后需要重启容器才能生效。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 5004,
"message": "请提供环境变量的值env_value。",
"url": "\/v2app\/replaceAppEnv.json"
}
# 删除容器环境应用环境变量
# 接口描述
删除容器环境应用的环境变量。
# 接口地址
https://api.sinaapp.com/v2app/deleteAppEnv.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀 |
env_key | 是 | POST | 待删除的环境变量的key,不存在时也会返回删除成功 |
# 返回结果示例
# 成功
调用成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
请注意
删除环境变量后需要重启容器才能生效。
# 失败
调用失败时,返回一个JSON数组,其中code字段为非0,message字段描述出错的具体原因,例如:
{
"code": 5004,
"message": "请提供环境变量的值env_value。",
"url": "\/v2app\/replaceAppEnv.json"
}
# 应用防火墙服务
# 获取应用防火墙的状态
# 接口描述
获取应用防火墙的状态和套餐状态。
# 接口地址
https://api.sinaapp.com/afw/status.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
应用开启了应用防火墙服务时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"in_package": 1,
"package_detail": {
"renewable": 1,
"begin": "2018-11-03 00:00:00",
"grade": "L01",
"status": "running",
"used": "0",
"end": "2018-12-02 23:59:59",
"quota": 1.0e+17,
"status_flag": "ok",
"status_zh": "正常"
},
"service_status": "enabled"
}
}
未开启应用防火墙时,返回如下格式的JSON:
{
"code": 0,
"data": {
"in_package": 0,
"package_detail": [],
"service_status": "unopened"
}
}
字段说明:
字段 | 说明 |
---|---|
in_package | 当前是否开启了套餐,1表示在套餐中,0表示未开启套餐 |
service_status | 服务状态,enabled 表示已经开启,unopened 表示未开启,disabled 表示已禁用,unknown 表示未知的状态 |
package_detail.renewable | 套餐是否自动续费,1表示自动续费,0表示不自动续费 |
package_detail.begin | 套餐的开始时间 |
package_detail.end | 套餐的结束时间 |
package_detail.status | 套餐的状态,running 表示执行中 |
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/status.json"
}
# 开启应用防火墙
# 接口描述
在应用未开启应用防火墙时开启服务。
# 接口地址
https://api.sinaapp.com/afw/open.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
开启成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2008,
"message": "当前应用的的防火墙服务已经开启,请务重复开启。",
"url": "\/afw\/open.json"
}
# 暂停应用防火墙
# 接口描述
在应用防火墙已经开启时,可以暂停防火墙服务。
请注意
- 暂停服务不会暂停套餐到期的时间,在套餐到期前可以免费再恢复服务;
- 暂停服务后,应用防火墙将不再工作,设置的所有拦截规则都失效,但不会被删除。
# 接口地址
https://api.sinaapp.com/afw/stop.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/stop.json"
}
# 重启应用防火墙
# 接口描述
在应用防火墙已经暂停时,可以恢复防火墙服务。
请注意
- 如果当前套餐仍然有效,恢复不再单独扣费;
- 如更当前套餐已经到期,需要重新开启服务。
# 接口地址
https://api.sinaapp.com/afw/restart.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/restart.json"
}
# 修改应用防火墙套餐自动续费规则
# 接口描述
在应用防火墙已经开启时,修改应用防火墙套餐的自动续费规则。
# 接口地址
https://api.sinaapp.com/afw/updateRenew.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
renewable | 是 | POST | 是开启还是关闭自动续费,为1时表示开启自动续费、为0时表示关闭自动续费 |
# 返回结果示例
# 成功
成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2017,
"message": "参数renewable不能为空,取值为0或者1。",
"url": "\/afw\/updateRenew.json"
}
# 获取应用防火墙白名单列表
# 接口描述
在应用防火墙已经开启时,获取已经设置的应用防火墙的IP白名单列表和配额。
# 接口地址
https://api.sinaapp.com/afw/whiteIpList.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
暂停成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"data": [],
"total_num": 0,
"limit": 100
}
}
字段说明:
字段 | 说明 |
---|---|
data | IP列表 |
total_num | 已经设置的IP或者IP段总数 |
limit | 当前应用允许设置的IP名单总数限制 |
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/whiteIpList.json"
}
# 增加应用防火墙白名单
# 接口描述
在应用防火墙已经开启时,增加应用防火墙的IP白名单或者IP段,单次允许添加单个IP或者IP段。
# 接口地址
https://api.sinaapp.com/afw/addWhiteIp.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
ip | 是 | POST | 需要增加的IP或者IP段 |
# 返回结果示例
# 成功
添加成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2023,
"message": "您填写的格式错误,应该为220.181.136.0\/24",
"url": "\/afw\/addWhiteIp.json"
}
# 删除应用防火墙白名单
# 接口描述
在应用防火墙已经开启时,删除应用防火墙的IP白名单或者IP段,单次允许删除单个IP或者IP段。
# 接口地址
https://api.sinaapp.com/afw/deleteWhiteIp.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
ip | 是 | POST | 需要删除的IP或者IP段 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2019,
"message": "您删除的IP不存在。",
"url": "\/afw\/deleteWhiteIp.json"
}
# 获取应用防火墙黑名单列表
# 接口描述
在应用防火墙已经开启时,获取已经设置的应用防火墙的IP黑名单列表和配额。
# 接口地址
https://api.sinaapp.com/afw/blackIpList.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
暂停成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"data": [
"61.135.152.137",
"61.135.152.136"
],
"total_num": 2,
"limit": 100
}
}
字段说明:
字段 | 说明 |
---|---|
data | IP列表 |
total_num | 已经设置的IP或者IP段总数 |
limit | 当前应用允许设置的IP黑单总数限制 |
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/whiteIpList.json"
}
# 增加应用防火墙黑名单
# 接口描述
在应用防火墙已经开启时,增加应用防火墙的IP黑名单或者IP段,单次允许添加单个IP或者IP段。
# 接口地址
https://api.sinaapp.com/afw/addBlackIp.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
ip | 是 | POST | 需要增加的IP或者IP段 |
# 返回结果示例
# 成功
添加成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2023,
"message": "您填写的格式错误,应该为220.181.136.0\/24",
"url": "\/afw\/addWhiteIp.json"
}
# 删除应用防火墙黑名单
# 接口描述
在应用防火墙已经开启时,删除应用防火墙的IP黑名单或者IP段,单次允许删除单个IP或者IP段。
# 接口地址
https://api.sinaapp.com/afw/deleteBlackIp.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
ip | 是 | POST | 需要删除的IP或者IP段 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2019,
"message": "您删除的IP不存在。",
"url": "\/afw\/deleteWhiteIp.json"
}
# 获取应用防火墙按频率拦截的值
# 接口描述
在应用防火墙已经开启时,获取按频率拦截的设置。针对所有来源IP,设定一段时间内的访问频率最大值(5分钟/24小时),超过该频率的IP将被拦截,拦截时HTTP状态码是609。
# 接口地址
https://api.sinaapp.com/afw/frequencyList.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"frequency5": 0,
"frequency24": 0
}
}
- frequency5字段表示单IP5分钟的访问频率,0表示不限制
- frequency24字段表示单IP一天的访问频率,0表示不限制
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/frequencyList.json"
}
# 设置应用防火墙按5分钟频率值
# 接口描述
在应用防火墙已经开启时,设置5分钟单个IP访问的频率。
# 接口地址
https://api.sinaapp.com/afw/frequency5Update.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_frequency5 | 是 | POST | 5分钟的频率值,整数,0表示不限制 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2030,
"message": "和当前配置一致,无需修改。",
"url": "\/afw\/frequency5Update.json"
}
# 设置应用防火墙按24小时频率值
# 接口描述
在应用防火墙已经开启时,设置24小时单个IP访问的频率。
# 接口地址
https://api.sinaapp.com/afw/frequency24Update.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_frequency24 | 是 | POST | 单个IP24小时的频率值,整数,0表示不限制 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2030,
"message": "和当前配置一致,无需修改。",
"url": "\/afw\/frequency24Update.json"
}
# 获取应用防火墙按流量拦截的值
# 接口描述
在应用防火墙已经开启时,获取按流量拦截的设置。针对所有来源IP,设定一段时间内的流量限制(5分钟或者24小时),超过该流量的IP将被拦截,拦截时HTTP状态码是609。
# 接口地址
https://api.sinaapp.com/afw/flowList.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"flow5": 0,
"flow24": 0
}
}
- flow5字段表示单IP5分钟的流量阈值,0表示不限制,单位是Byte
- flow24字段表示单IP一天的流量阈值,0表示不限制,单位是Byte
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/flowList.json"
}
# 设置应用防火墙单IP 5分钟流量阈值
# 接口描述
在应用防火墙已经开启时,设置5分钟单个IP访问产生的流量阈值。
# 接口地址
https://api.sinaapp.com/afw/flow5Update.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_flow5 | 是 | POST | 单个IP 5分钟的流量阈值,整数,0表示不限制,单位为Byte |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2030,
"message": "和当前配置一致,无需修改。",
"url": "\/afw\/flow5Update.json"
}
# 设置应用防火墙单IP 24小时流量阈值
# 接口描述
在应用防火墙已经开启时,设置24小时单个IP访问产生的流量阈值。
# 接口地址
https://api.sinaapp.com/afw/flow24Update.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_flow24 | 是 | POST | 单个IP 24小时的的流量阈值,整数,0表示不限制,单位为Byte |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2030,
"message": "和当前配置一致,无需修改。",
"url": "\/afw\/flow24Update.json"
}
# 获取应用防火墙访问速度控制设定
# 接口描述
在应用防火墙已经开启时,获取应用防火墙速度控制设置的值。针对所有来源IP,设定访问速度,与“频率拦截配置”不同的是:超过限制的IP不会被拦截,只会被限速处理。
# 接口地址
https://api.sinaapp.com/afw/rateList.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": {
"rate5": 0
}
}
- rate5:表示5分钟单个IP的访问次数限定,超出这个总次数的请求会被限速处理。
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 1002,
"message": "您没有权限管理当前应用。",
"url": "\/afw\/rateList.json"
}
# 修改应用防火墙访问速度控制阈值
# 接口描述
在应用防火墙已经开启时,修改应用防火墙速度控制设置的值。针对所有来源IP,设定访问速度,与“频率拦截配置”不同的是:超过限制的IP不会被拦截,只会被限速处理。
# 接口地址
https://api.sinaapp.com/afw/rateUpdate.json
# 请求方式
POST
# 是否需要认证
是,需要认证后再请求,请求参数access_token需要写到URL中。
# 请求参数
参数 | 是否必填 | 请求方式 | 说明 |
---|---|---|---|
access_token | 是 | GET | 通过oauth2认证后获取的access_token,需要放到GET的参数中 |
client_id | 是 | GET或者POST | 接口的Client_id,申请接口后可以获取 |
appname | 是 | POST | 需要开启的应用的二级域名前缀,4-18位英文小写字符和数字的组合 |
new_rate5 | 是 | POST | 新的访问速度控制的阈值,为0表示不限制 |
# 返回结果示例
# 成功
删除成功时,返回一个JSON字符串,其中code为0,返回值如下:
{
"code": 0,
"data": true
}
- rate5:表示5分钟单个IP的访问次数限定,超出这个总次数的请求会被限速处理。
# 错误
如果调用出错,code字段非0,message字段包含具体的错误:
{
"code": 2030,
"message": "和当前配置一致,无需修改。",
"url": "\/afw\/rateUpdate.json"
}