# 云应用操作接口

# 通用接口

# 检查应用名是否可用

# 接口描述

在创建应用时,需要传入应用的二级域名前缀,由于二级域名前缀全局唯一,此接口可以用于判断应用名是否可用。

# 接口地址

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"
}