Importação de APIs para um novo grupo de APIs
Função
Esta API é usada para importar APIs do Swagger para um novo grupo de APIs. 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 |
|---|---|
|
POST |
/v1.0/apigw/openapi |
A tabela a seguir lista o parâmetro no URI.
|
Parâmetro |
Localização |
Obrigatório |
Tipo |
Descrição |
|---|---|---|---|---|
|
extend_mode |
consultar |
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 |
Sim |
String |
Nome do grupo da API |
|
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, FUNCTIONe 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, FUNCTIONe 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 |