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 |