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

Importação de APIs para um grupo de APIs existente

Função

Esta API é usada para criar ou atualizar APIs em um grupo de APIs importando definições do Swagger. Arquivos Swagger no formato JSON ou YAML são suportados.

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

PUT

/v1.0/apigw/openapi?group_id={0}&mode={1}

A tabela a seguir lista os parâmetros no URI.

Tabela 2 Descrição do parâmetro

Parâmetro

Obrigatório

Tipo

Descrição

group_id

Sim

String

ID do grupo da API

mode

Sim

String

Ação a ser tomada se ocorrer um conflito. Opções: merge e override.

  • merge: mantém a API original.
  • override: substitui a API existente.

extend_mode

Não

String

Modo de importação de definição estendida. As opções incluem merge e override.

Se a definição estendida entrar em conflito com a definição de API existente, você pode optar por manter ou substituir a definição existente.

Solicitação

Tabela 3 Descrição do parâmetro

Parâmetro

Obrigatório

Tipo

Descrição

swagger

Sim

String

O valor é fixado em 2.0.

info

Sim

Object

consulte Tabela 4.

paths

Sim

Object

consulte Tabela 5.

responses

Não

Object

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

securityDefinitions

Sim

Object

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

x-apigateway-access-controls

Não

Object

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

x-apigateway-ratelimits

Não

Object

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

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

Parâmetro

Obrigatório

Tipo

Descrição

title

Não

String

Nome de um grupo de APIs. Esse parâmetro não entra em vigor quando o grupo de APIs é importado para um grupo existente.

version

Não

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 5 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 6.

Tabela 6 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 7.

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

Parâmetro

Obrigatório

Tipo

Descrição

operationId

Não

String

Nome da API

description

Não

String

Descrição da API

schemes

Não

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 8.

responses

Não

Object

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

security

Não

Object

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

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 15.

x-apigateway-backend-policies

Não

Object

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

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 8 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 9 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 11.

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 10 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 11 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 12.

Tabela 12 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 13 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 14.

Tabela 14 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 15 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, FUNCTION e MOCK.

parameters

Não

Object

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

backend_define

Sim

Object

Definição de back-end

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

Tabela 16 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, FUNCTION e MOCK.

name

Não

String

Nome da política de back-end

parameters

Não

Object

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

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 22.

effectMode

Sim

String

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

Tabela 17 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 18 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 19 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 20 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 21 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 22 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 23 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 24.

Tabela 24 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 25 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 26.

Tabela 26 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 27.

Tabela 27 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 solicitação:

{
	"swagger": "2.0",
	"info": {
		"description": "api group test",
		"title": "APIGroup_test",
		"version": "2019-09-12-17:38:10"
	},

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

Resposta

Tabela 28 Descrição do parâmetro

Parâmetro

Tipo

Descrição

group_id

String

ID do grupo da API

success

Array

Importar informações de sucesso

failure

Array

Importar informações de falha

Tabela 29 Descrição do parâmetro de success

Parâmetro

Tipo

Descrição

id

String

ID de uma API importada com sucesso

action

String

Tipo de importação. Opções:

  • update: atualiza as APIs em um grupo de APIs existente.
  • create: cria APIs para um novo grupo de APIs.

method

String

Método de solicitação

path

String

Caminho de solicitação

Tabela 30 Descrição do parâmetro da falha

Parâmetro

Tipo

Descrição

error_code

String

Código de erro

error_msg

String

Mensagem de erro

method

String

Método de solicitação

path

String

Caminho de solicitação

Exemplo de resposta:

{
  "group_id": "27aa2317e3514c5bb5aab5587a5e50ea",
  "success": [
    {
      "id": "aea39194d8db46408be0174b0bd15931",
      "action": "create",
      "method": "GET",
      "path": "/test01"
    }
  ],
  "failure": [
    {
      "error_code": "APIG.2011",
      "error_msg": "Parameter value does not match the rules,parameterName:backend_type",
      "method": "GET",
      "path": "/test02"
    }
  ]
}

Códigos de status

Tabela 31 Códigos de status

Código de status

Descrição

200

OK

400

Solicitação inválida

403

Proibido

500

Erro do servidor interno