批量导出API
功能介绍
按API ID列表批量导出指定分组、指定环境中发布的API的基础/全量/扩展Swagger定义。
URI
HTTP/HTTPS请求方法以及URI如下表所示。
请求方法 | URI |
|---|---|
POST | /v1.0/apigw/openapi/apis?env_id={0}&define={2}&version={3}&type={4} |
URI中的参数说明如下表所示。
参数 | 是否必选 | 类型 | 说明 |
|---|---|---|---|
env_id/env | 是 | String | API分组发布的环境ID,目前支持env_id和env,两个均存在时以env_id为准,建议使用env_id |
define | 否 | String | 导出API的定义范围:
默认为base |
version | 否 | String | 导出的API定义版本,默认为当前时间 |
type | 否 | String | 导出的API定义的格式:json/yaml,默认为json |
请求消息
参数位置 | 是否必选 | 类型 | 说明 |
|---|---|---|---|
body | 是 | String Array | 导出的API ID列表 |
请求消息样例:
["81efcfd94b8747a0b21e8c04144a4e8c","7addcd00cfab433984b1d8bf2fe08aaa"]
响应消息
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
swagger | 是 | String | 固定值2.0 |
info | 是 | Object | 参考表5 |
host | 是 | String | API分组绑定的子域名 |
paths | 是 | Object | |
responses | 是 | Object | 公用响应定义,可以被引用在{method}的操作中,参考表10 |
securityDefinitions | 是 | Object | 定义鉴权方式,参考表14 |
x-apigateway-access-controls | 否 | Object | 访问控制信息,参考表 x-apigateway-access-controls参数说明 |
x-apigateway-ratelimits | 否 | Object | 流量空时信息,参考表 x-apigateway-ratelimits参数说明 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
title | 是 | String | API分组名称 |
version | 是 | String | 版本号,用户输入自定义版本号或者使用默认的当前时间 |
description | 否 | String | 分组描述信息 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
operationId | 是 | String | API的名称 |
description | 否 | String | API的描述信息 |
schemes | 是 | Object | API的请求协议对象数组定义,支持http、https |
tags | 否 | Object | API标签对象数组定义 |
parameters | 否 | Object | 请求参数对象数组定义,参考表 前端parameters参数说明 |
responses | 是 | Object | 响应定义,参考表10 |
security | 否 | Object | API的认证类型对象数组定义,参考表 security参数说明 |
x-apigateway-access-control | 否 | Object | API绑定的访问控制对象数组定义 |
x-apigateway-backend | 否 | Object | API的后端信息,参考表 x-apigateway-backend参数说明 |
x-apigateway-backend-policies | 否 | Object | API的策略后端信息,参考表 x-apigateway-backend-policies参数说明 |
x-apigateway-cors | 否 | Boolean | 是否支持跨域 |
x-apigateway-match-mode | 否 | String | API的匹配方式 |
x-apigateway-ratelimit | 否 | String | API绑定的流量控制名称 |
x-apigateway-request-type | 否 | String | API的类型 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
maximum | 否 | Float | 参数为数值类型时,最大参数值 |
minimum | 否 | Float | 参数为数值类型时,最小参数值 |
maxLength | 否 | Integer | 参数为字符串类型时,参数的最大长度 |
minLength | 否 | Integer | 参数为字符串类型时,参数的最小长度 |
pattern | 否 | String | 参数值为正则匹配表达式 |
type | 否 | String | 参数类型 |
default | 否 | String | 参数默认值 |
description | 否 | String | 参数描述信息 |
name | 否 | String | 参数名称 |
in | 否 | String | 参数位置,支持path、header、query、formData、body |
required | 否 | Boolean | 参数是否必需,参数位置为path时必需 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
default | 否 | Object | 缺省响应,描述未定义的响应码 |
status_code | 否 | Object | 响应状态码,值为响应对象,参考表12 |
x-apigateway-result-failure-sample | 否 | String | 失败返回示例,描述API的异常返回信息 |
x-apigateway-result-normal-sample | 否 | String | 正常响应示例,描述API的正常返回信息 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
apig-auth-type | 否 | Object | API的认证类型对象数组定义,为空数组 apig-auth-type支持:
|
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
type | 是 | String | 鉴权类型,支持apiKey |
name | 是 | String | apiKey参数名称 |
in | 是 | String | apiKey参数位置 |
x-apigateway-auth-type | 是 | String | 扩展鉴权类型,基于apiKey鉴权方式的扩展,网关自定义的鉴权方式,支持AppSigv1、IAM、IAM_NONE |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
type | 是 | String | API后端类型,支持HTTP、HTTP-VPC、FUNCTION、MOCK |
parameters | 否 | Object | 后端参数对象数组定义,参考表 后端parameters参数说明 |
backend_define | 是 | Object | API后端定义 backend_define支持:
|
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
type | 是 | String | API后端类型,支持HTTP、HTTP-VPC、FUNCTION、MOCK |
name | 是 | String | 后端策略名称 |
parameters | 否 | Object | 后端参数对象数组定义,参考表 后端parameters参数说明 |
backend_define | 是 | Object | API后端定义 backend_define支持:
|
conditions | 是 | Object | 策略条件对象数组定义,参考表 conditions参数说明 |
effectMode | 是 | String | 关联的策略组合模式,支持ANY、ALL |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
name | 是 | String | 参数名称,由字母、数字、下划线、连线、点组成,以字母开头,最长32字节 header位置的参数名称不区分大小写 |
value | 是 | String | 参数值,当参数来源为REQUEST时,值为请求参数名称 |
in | 是 | String | 参数位置,支持header、query、path |
origin | 是 | String | 参数映射来源,支持REQUEST、CONSTANT |
description | 否 | String | 参数含义描述 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
address | 是 | String | 后端服务地址,格式为:<域名或IP>:[port] |
scheme | 是 | String | 后端请求协议定义,支持http、https |
method | 是 | String | 后端请求方法,支持GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH、ANY |
path | 是 | String | 后端请求路径,支持路径变量 |
timeout | 否 | Integer | 后端请求超时时间,单位毫秒,缺省值为5000,取值范围为1 ~ 60000 |
description | 否 | String | API后端描述 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
name | 是 | Array | VPC通道名称 |
scheme | 是 | String | 后端请求协议定义,支持http、https |
method | 是 | String | 后端请求方法,支持GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH、ANY |
path | 是 | String | 后端请求路径,支持路径变量 |
timeout | 否 | Integer | 后端请求超时时间,单位毫秒,缺省值为5000,取值范围为1 ~ 60000 |
host | 否 | String | VPC通道代理主机 |
description | 否 | String | API后端描述 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
function-urn | 是 | String | 函数URN地址 |
version | 是 | String | 函数版本 |
invocation-type | 是 | String | 函数调用类型,支持async、sync |
timeout | 否 | Integer | 函数超时时间,单位毫秒,缺省值为5000,取值范围为1 ~ 60000 |
description | 否 | String | API后端描述 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
type | 是 | String | 策略条件类型,支持equal、enum、pattern |
value | 是 | String | 策略条件值 |
origin | 是 | String | 策略条件输入来源,支持source、request |
parameter | 否 | String | 策略条件输入来源为request时,请求入参的名称 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
acl-type | 是 | String | 访问控制行为,支持PERMIT、DENY |
entity-type | 是 | String | 访问控制对象,支持IP、DOMAIN |
value | 是 | String | 访问控制策略值,多个值以“,”间隔 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
api-limit | 是 | Integer | API访问次数限制 |
user-limit | 否 | Integer | 用户访问次数限制 |
app-limit | 否 | Integer | 应用访问次数限制 |
ip-limit | 否 | Integer | 源IP访问次数限制 |
interval | 是 | Integer | 流控策略时间周期 |
unit | 是 | String | 流控策略时间周期单位,支持SECOND、MINUTE、HOUR、DAY |
shared | 否 | Boolean | 是否共享流控策略 |
special | 否 | Object | 特殊流控策略对象数组定义,参考表 special参数说明 |
名称 | 是否必选 | 参数类型 | 说明 |
|---|---|---|---|
type | 是 | String | 特殊流控策略类型,支持APP、USER |
limit | 是 | Integer | 访问次数 |
instance | 是 | String | 特殊APP或USER的对象标识 |
响应消息样例:
{
"swagger": "2.0",
"info": {
"description": "api group test",
"title": "APIGroup_test",
"version": "2019-09-12-17:38:10"
},
"host": "6b075335476a4943bf70c3db1343c912.apigw.example.com",
"paths": {
"/test/{path}": {
"get": {
"security": [
{
"apig-auth-app": []
}
],
"description": "api test",
"schemes": [
"https"
],
"operationId": "API_test",
"parameters": [
{
"type": "string",
"description": "header parameter",
"name": "header",
"in": "header",
"required": true
},
{
"type": "string",
"description": "path parameter",
"name": "path",
"in": "path",
"required": true
},
{
"type": "number",
"default": "123",
"description": "query parameter",
"name": "query",
"in": "query"
}
],
"responses": {
"default": {
"$ref": "#/responses/default"
},
"x-apigateway-result-failure-sample": "",
"x-apigateway-result-normal-sample": "success"
},
"x-apigateway-backend": {
"httpEndpoints": {
"address": "1.1.1.1:443",
"description": "",
"method": "GET",
"path": "/test/{path}",
"scheme": "https",
"timeout": 5000
},
"parameters": [
{
"description": "",
"in": "HEADER",
"name": "header",
"origin": "REQUEST",
"value": "header"
},
{
"description": "",
"in": "PATH",
"name": "path",
"origin": "REQUEST",
"value": "path"
},
{
"description": "",
"in": "QUERY",
"name": "query",
"origin": "REQUEST",
"value": "query"
}
],
"type": "HTTP"
},
"x-apigateway-backend-policies": [
{
"conditions": [
{
"origin": "param",
"parameter": "path",
"type": "exact",
"value": "path"
},
{
"origin": "source",
"parameter": "",
"type": "",
"value": "1.0.0.0/8"
}
],
"effectMode": "ANY",
"httpVpcEndpoints": {
"method": "POST",
"name": "VPC_n9ct",
"path": "/",
"scheme": "HTTPS",
"timeout": 5000
},
"name": "policy_test",
"type": "HTTP-VPC"
}
],
"x-apigateway-cors": false,
"x-apigateway-match-mode": "NORMAL",
"x-apigateway-request-type": "public"
}
}
},
"responses": {
"default": {
"description": "response example"
}
},
"securityDefinitions": {
"apig-auth-app": {
"type": "apiKey",
"name": "Authorization",
"in": "header",
"x-apigateway-auth-type": "AppSigv1"
},
"apig-auth-iam": {
"type": "apiKey",
"name": "unused",
"in": "header",
"x-apigateway-auth-type": "IAM"
}
}
} 响应码
响应码 | 说明 |
|---|---|
200 | OK |
400 | bad request |
401 | unauthorized |
403 | forbidden |
500 | server internal error |

