Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-29 GMT+08:00

Exportação de várias APIs

Função

Esta API é usada para exportar a definição básica, completa ou estendida do Swagger de APIs especificadas por seus IDs.

URI

A tabela a seguir lista o método de solicitação HTTP/HTTPS e o URI da API.

Tabela 1

Método de solicitação

URI

POST

/v1.0/apigw/openapi/apis?env_id={0}&define={2}&version={3}&type={4}

A tabela a seguir lista o parâmetro no URI.

Tabela 2 Descrição do parâmetro

Parâmetro

Obrigatório

Tipo

Descrição

env_id/env

Sim

String

ID do ambiente em que as APIs de um grupo especificado foram publicadas. Ambos env_id (recomendado) e env podem indicar um ID de ambiente. Se os dois parâmetros estiverem disponíveis, o valor de env_id terá precedência.

define

Não

String

Definição do escopo das APIs a serem exportadas:

  • base: definição básica
  • full: definição completa
  • all: definição estendida

O valor padrão é base.

version

Não

String

Versão das APIs após a exportação. O valor padrão é a data e a hora atuais.

type

Não

String

Formato para exportar definições de API. O valor pode ser json ou yaml. O valor padrão é json.

Solicitação

Tabela 3 Descrição do parâmetro

Localização

Obrigatório

Tipo

Descrição

body

Sim

String Array

IDs das APIs a serem exportados

Exemplo de solicitação:

["81efcfd94b8747a0b21e8c04144a4e8c","7addcd00cfab433984b1d8bf2fe08aaa"]

Resposta

Tabela 4 Descrição do parâmetro

Parâmetro

Obrigatório

Tipo

Descrição

swagger

Sim

String

O valor é fixado em 2.0.

info

Sim

Object

Para mais detalhes, consulte Tabela 5.

host

Sim

String

Nome do subdomínio vinculado ao grupo de APIs

paths

Sim

Object

consulte Tabela 6.

responses

Sim

Object

Resposta comum, que pode ser referenciada em {method}. Para mais detalhes, consulte Tabela 10.

securityDefinitions

Sim

Object

Definição do modo de autenticação de segurança. Para mais detalhes, consulte Tabela 14.

x-apigateway-access-controls

Não

Object

Informações de controle de acesso. Para mais detalhes, consulte Tabela 24.

x-apigateway-ratelimits

Não

Object

Solicitar informações de limitação. Para mais detalhes, consulte Tabela 26.

Tabela 5 Descrição do parâmetro de info

Parâmetro

Obrigatório

Tipo

Descrição

title

Sim

String

Nome do grupo da API

version

Sim

String

Número da versão. Você pode especificar um número de versão ou usar a data e a hora atuais por padrão.

description

Não

String

Descrição do grupo da API

Tabela 6 Descrição do parâmetro de paths

Parâmetro

Obrigatório

Tipo

Descrição

uri

Sim

Object

Endereço de acesso da API. Para mais detalhes, consulte Tabela 7.

Tabela 7 Descrição do parâmetro de uri

Parâmetro

Obrigatório

Tipo

Descrição

method

Sim

Object

Método de acesso da API. Para mais detalhes, consulte Tabela 8.

Tabela 8 Descrição do parâmetro de method

Parâmetro

Obrigatório

Tipo

Descrição

operationId

Sim

String

Nome da API

description

Não

String

Descrição da API

schemes

Sim

Object

Protocolo de solicitação da API. HTTP e HTTPS são suportados.

tags

Não

Object

Tags da API

parameters

Não

Object

Solicitar definições de parâmetros. Para mais detalhes, consulte Tabela 9.

responses

Sim

Object

Definição da resposta. Para mais detalhes, consulte Tabela 10.

security

Não

Object

Modo de autenticação de segurança. Para mais detalhes, consulte Tabela 11.

x-apigateway-access-control

Não

Object

Política de controle de acesso vinculada à API

x-apigateway-backend

Não

Object

Informações de back-end. Para mais detalhes, consulte Tabela 16.

x-apigateway-backend-policies

Não

Object

Informações sobre a política de back-end. Para mais detalhes, consulte Tabela 17.

x-apigateway-cors

Não

Boolean

Indica se o CORS é suportado.

x-apigateway-match-mode

Não

String

Modo de correspondência de rota

x-apigateway-ratelimit

Não

String

Nome da política de limitação de solicitações vinculada à API

x-apigateway-request-type

Não

String

Tipo de API

Tabela 9 Descrição do parâmetro de front-end

Parâmetro

Obrigatório

Tipo

Descrição

maximum

Não

Float

Valor máximo de um parâmetro de tipo numérico

minimum

Não

Float

Valor mínimo de um parâmetro de tipo numérico

maxLength

Não

Integer

Comprimento máximo de um parâmetro de tipo cadeia

minLength

Não

Integer

Comprimento mínimo de um parâmetro de tipo cadeia

pattern

Não

String

Expressão regular do valor do parâmetro

type

Não

String

Tipo

default

Não

String

Valor padrão

description

Não

String

Descrição do parâmetro

name

Não

String

Nome do parâmetro

in

Não

String

Local do parâmetro, que pode ser path, header, query, formData ou body

required

Não

Boolean

Se o parâmetro é necessário. O parâmetro é necessário quando sua localização é path.

Tabela 10 Descrição do parâmetro de responses

Parâmetro

Obrigatório

Tipo

Descrição

default

Não

Object

Resposta padrão, que será usada quando nenhum código de status for definido

status_code

Não

Object

Código do status da resposta. O valor é um objeto de resposta. Para mais detalhes, consulte Tabela 12.

x-apigateway-result-failure-sample

Não

String

Exemplo de resposta para uma solicitação com falha

x-apigateway-result-normal-sample

Não

String

Exemplo de resposta para uma solicitação bem-sucedida

Tabela 11 Descrição do parâmetro de security

Parâmetro

Obrigatório

Tipo

Descrição

apig-auth-type

Não

Object

Modo de autenticação de segurança. Este parâmetro é uma matriz nula.

Opções:

  • apig-auth-app: autenticação de aplicação
  • apig-auth-iam: autenticação do IAM
  • Nulo: nenhuma autenticação necessária
Tabela 12 Descrição do parâmetro de status code

Parâmetro

Obrigatório

Tipo

Descrição

description

Não

String

Descrição da resposta

schema

Não

Object

Corpo da resposta. Para mais detalhes, consulte Tabela 13.

Tabela 13 Descrição do parâmetro de schema

Parâmetro

Obrigatório

Tipo

Descrição

description

Não

String

Descrição do corpo

type

Não

String

Tipo de corpo, que pode ser FORM ou STREAM

Tabela 14 Descrição do parâmetro de securityDefinitions

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

Object

Modo de autenticação de segurança. Para mais detalhes, consulte Tabela 15.

Tabela 15 Descrição do parâmetro de name

Parâmetro

Obrigatório

Tipo

Descrição

type

Sim

String

Tipo de autenticação. O apiKey é suportado.

name

Sim

String

Nome do apiKey

in

Sim

String

Localização do apiKey

x-apigateway-auth-type

Sim

String

Tipo de autenticação estendido com base no apiKey. Os tipos de autenticação AppSigv1, IAM e IAM_NONE são suportados.

Tabela 16 Descrição do parâmetro de x-apigateway-backend

Parâmetro

Obrigatório

Tipo

Descrição

type

Sim

String

Tipo de back-end. As opções incluem HTTP, HTTP-VPC, FUNCTIONe MOCK.

parameters

Não

Object

Parâmetros de back-end. Para mais detalhes, consulte Tabela 18.

backend_define

Sim

Object

Definição de back-end

As seguintes definições de back-end são suportadas:

Tabela 17 Descrição do parâmetro de x-apigateway-backend-policies

Parâmetro

Obrigatório

Tipo

Descrição

type

Sim

String

Tipo de back-end. As opções incluem HTTP, HTTP-VPC, FUNCTIONe MOCK.

name

Sim

String

Nome da política de back-end

parameters

Não

Object

Parâmetros de back-end. Para mais detalhes, consulte Tabela 18.

backend_define

Sim

Object

Definição de back-end

As seguintes definições de back-end são suportadas:

conditions

Sim

Object

Condições de políticas. Para mais detalhes, consulte Tabela 23.

effectMode

Sim

String

Modo efetivo da política de back-end. As opções incluem ANY e ALL.

Tabela 18 Descrição do parâmetro de back-end

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome do parâmetro, que consiste em um máximo de 32 bytes, começando com uma letra. Somente letras, dígitos, pontos (.), hifens (-) e sublinhados (_) são permitidos.

Os nomes dos parâmetros de cabeçalho não diferenciam maiúsculas de minúsculas.

value

Sim

String

Valor de parâmetro, que é um nome de parâmetro se o parâmetro vem de uma solicitação

in

Sim

String

Local do parâmetro, que pode ser header, query ou path

origin

Sim

String

Origem do mapeamento do parâmetro. As opções incluem REQUEST e CONSTANT.

description

Não

String

Significado do parâmetro

Tabela 19 Descrição do parâmetro de back-end httpEndpoints

Parâmetro

Obrigatório

Tipo

Descrição

address

Sim

String

Endereço do serviço de back-end. O formato é <Nome de domínio ou endereço IP>:[Número da porta]

scheme

Sim

String

Protocolo de solicitação de back-end. HTTP e HTTPS são suportados.

method

Sim

String

Método de solicitação de back-end. As opções incluem GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH e ANY.

path

Sim

String

Caminho de solicitação de back-end, que pode conter variáveis.

timeout

Não

Integer

Tempo limite de solicitação de back-end em milissegundos. O valor varia de 1 a 60.000 e o valor padrão é 5000.

description

Não

String

Descrição do back-end

Tabela 20 Descrição do parâmetro de back-end httpVpcEndpoints

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

Array

Nome do canal da VPC

scheme

Sim

String

Protocolo de solicitação de back-end. HTTP e HTTPS são suportados.

method

Sim

String

Método de solicitação de back-end. As opções incluem GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH e ANY.

path

Sim

String

Caminho de solicitação de back-end, que pode conter variáveis.

timeout

Não

Integer

Tempo limite de solicitação de back-end em milissegundos. O valor varia de 1 a 60.000 e o valor padrão é 5000.

host

Não

String

Host de proxy de canal da VPC

description

Não

String

Descrição do back-end

Tabela 21 Descrição do parâmetro de back-end de functionEndpoints

Parâmetro

Obrigatório

Tipo

Descrição

function-urn

Sim

String

Função URN

version

Sim

String

Versão da função

invocation-type

Sim

String

Tipo de invocação da função. O valor pode ser async ou sync.

timeout

Não

Integer

Tempo limite da função em milissegundos. O valor varia de 1 a 60.000 e o valor padrão é 5000.

description

Não

String

Descrição do back-end

Tabela 22 Descrição do parâmetro de back-end mockEndpoints

Parâmetro

Obrigatório

Tipo

Descrição

result-content

Sim

String

Resposta fictícia

description

Não

String

Descrição do back-end

Tabela 23 Descrição do parâmetro das condições

Parâmetro

Obrigatório

Tipo

Descrição

type

Sim

String

Tipo de condição de política. As opções incluem equal, enum e pattern.

value

Sim

String

Valor da condição de política

origin

Sim

String

Origem da condição de política. As opções incluem source e request.

parameter

Não

String

Nome do parâmetro de entrada se o parâmetro origin estiver definido como request.

Tabela 24 Descrição do parâmetro de x-apigateway-access-controls

Parâmetro

Obrigatório

Tipo

Descrição

acl_name

Não

Object

Política de controle de acesso. Para mais detalhes, consulte Tabela 25.

Tabela 25 Descrição do parâmetro de acl_name

Parâmetro

Obrigatório

Tipo

Descrição

acl-type

Sim

String

Efeito de controle de acesso. As opções incluem PERMIT e DENY.

entity-type

Sim

String

Objeto de controle de acesso. Apenas endereços IP e contas são suportados.

value

Sim

String

Valores de controle de acesso, que são separados por vírgulas (,).

Tabela 26 Descrição do parâmetro de x-apigateway-ratelimits

Parâmetro

Obrigatório

Tipo

Descrição

throttle_name

Não

Object

Solicitar política de limitação Para mais detalhes, consulte Tabela 27.

Tabela 27 Descrição do parâmetro de throttle_name

Parâmetro

Obrigatório

Tipo

Descrição

api-limit

Sim

Integer

Número máximo de vezes que uma API pode ser chamada

user-limit

Não

Integer

Número de vezes que a API pode ser chamada por um usuário

app-limit

Não

Integer

Número de vezes que a API pode ser chamada por uma aplicação

ip-limit

Não

Integer

Número de vezes que a API pode ser chamada por um endereço IP

interval

Sim

Integer

Período de limitação

unit

Sim

String

Unidade de limitação, que pode ser SECOND, MINUTE, HOUR ou DAY

shared

Não

Boolean

Se compartilhar os limites entre as APIs

special

Não

Object

Configurações de limitação de solicitação excluídas. Para mais detalhes, consulte Tabela 28.

Tabela 28 Descrição do parâmetro do special

Parâmetro

Obrigatório

Tipo

Descrição

type

Sim

String

Excluído o tipo de solicitação de limitação, que pode ser APP ou USER

limit

Sim

Integer

Limite de acesso

instance

Sim

String

Aplicação ou usuário excluído

Exemplo de resposta:

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

Códigos de status

Tabela 29 Códigos de status

Código de status

Descrição

200

OK

400

Solicitação inválida

401

Não autorizado

403

Proibido

500

Erro do servidor interno