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.
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.
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.
|
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
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. |
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 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
uri |
Sim |
Object |
Endereço de acesso da API. Para mais detalhes, consulte Tabela 6. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
method |
Sim |
Object |
Método de acesso da API. Para mais detalhes, consulte Tabela 7. |
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 |
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. |
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 |
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:
|
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. |
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 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
name |
Sim |
Object |
Modo de autenticação de segurança. Para mais detalhes, consulte Tabela 14. |
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. |
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: |
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. |
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 |
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 |
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 |
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 |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
result-content |
Sim |
String |
Resposta fictícia |
description |
Não |
String |
Descrição do back-end |
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. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
acl_name |
Não |
Object |
Política de controle de acesso. Para mais detalhes, consulte Tabela 24. |
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 (,). |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
throttle_name |
Não |
Object |
Solicitar política de limitação Para mais detalhes, consulte Tabela 26. |
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. |
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
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 |
Parâmetro |
Tipo |
Descrição |
---|---|---|
id |
String |
ID de uma API importada com sucesso |
action |
String |
Tipo de importação. Opções:
|
method |
String |
Método de solicitação |
path |
String |
Caminho de solicitação |
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
Código de status |
Descrição |
---|---|
200 |
OK |
400 |
Solicitação inválida |
403 |
Proibido |
500 |
Erro do servidor interno |