Importación de API a un nuevo grupo de API
Función
Esta API se utiliza para importar API de Swagger a un nuevo grupo de API. Se admiten archivos de Swagger en formato de JSON o YAML.
URI
La siguiente tabla muestra el método de solicitud HTTP/HTTPS y el URI de la API.
|
Método de solicitud |
URI |
|---|---|
|
POST |
/v1.0/apigw/openapi |
En la siguiente tabla se muestra el parámetro en el URI.
|
Parámetro |
Localización |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|---|
|
extend_mode |
query |
No |
String |
Modo de importación de definición extendida. Las opciones incluyen merge y override. Si la definición extendida entra en conflicto con la definición de API existente, puede elegir conservar o reemplazar la definición existente. |
Solicitud
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
swagger |
Sí |
String |
El valor se fija en 2.0. |
|
info |
Sí |
Object |
Consulte Tabla 4. |
|
paths |
Sí |
Object |
Consulte Tabla 5. |
|
responses |
No |
Object |
Respuesta común, a la que se puede hacer referencia en el documento {method}. Para obtener más información, consulte Tabla 9. |
|
securityDefinitions |
Sí |
Object |
Definición del modo de autenticación de seguridad. Para obtener más información, consulte Tabla 13. |
|
x-apigateway-access-controls |
No |
Object |
Información de control de acceso. Para obtener más información, consulte Tabla 23. |
|
x-apigateway-ratelimits |
No |
Object |
Solicitud de información de limitación. Para obtener más información, consulte Tabla 25. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
title |
Sí |
String |
Nombre del grupo de API |
|
version |
No |
String |
Número de versión. Puede especificar un número de versión o utilizar la fecha y hora actuales de forma predeterminada. |
|
description |
No |
String |
Descripción del grupo de API |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
uri |
Sí |
Object |
Dirección de acceso de API. Para obtener más información, consulte Tabla 6. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
method |
Sí |
Object |
Método de acceso a la API. Para obtener más información, consulte Tabla 7. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
operationId |
No |
String |
Nombre de la API |
|
description |
No |
String |
Descripción de la API |
|
schemes |
No |
Object |
Protocolo de solicitud de API. HTTP y HTTPS son compatibles. |
|
tags |
No |
Object |
Etiquetas de API |
|
parameters |
No |
Object |
Solicitud de definiciones de parámetros. Para obtener más información, consulte Tabla 8. |
|
responses |
No |
Object |
Definición de respuesta. Para obtener más información, consulte Tabla 9. |
|
security |
No |
Object |
Modo de autenticación de seguridad. Para obtener más información, consulte Tabla 10. |
|
x-apigateway-access-control |
No |
Object |
Política de control de acceso vinculada a la API |
|
x-apigateway-backend |
No |
Object |
Información de backend. Para obtener más información, consulte Tabla 15. |
|
x-apigateway-backend-policies |
No |
Object |
Información sobre la política de backend. Para obtener más información, consulte Tabla 16. |
|
x-apigateway-cors |
No |
Boolean |
Indica si se admite CORS. |
|
x-apigateway-match-mode |
No |
String |
Modo de coincidencia de ruta |
|
x-apigateway-ratelimit |
No |
String |
Nombre de la política de limitación de solicitudes vinculada a la API |
|
x-apigateway-request-type |
No |
String |
Tipo de API |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
maximum |
No |
Float |
Valor máximo de un parámetro de tipo de número |
|
minimum |
No |
Float |
Valor mínimo de un parámetro de tipo de número |
|
maxLength |
No |
Integer |
Longitud máxima de un parámetro de tipo de cadena |
|
minLength |
No |
Integer |
Longitud mínima de un parámetro de tipo de cadena |
|
pattern |
No |
String |
Expresión regular del valor del parámetro |
|
type |
No |
String |
Tipo |
|
default |
No |
String |
Valor predeterminado |
|
description |
No |
String |
Descripción de parámetro |
|
name |
No |
String |
Nombre del parámetro |
|
in |
No |
String |
Ubicación del parámetro, que puede ser path, header, query, formData o body |
|
required |
No |
Boolean |
Si se requiere el parámetro. El parámetro es necesario cuando su ubicación es path. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
default |
No |
Object |
Respuesta predeterminada, que se usará cuando no se defina ningún código de estado |
|
status_code |
No |
Object |
Código de estado de respuesta. El valor es un objeto de respuesta. Para obtener más información, consulte Tabla 11. |
|
x-apigateway-result-failure-sample |
No |
String |
Ejemplo de respuesta para una solicitud fallida |
|
x-apigateway-result-normal-sample |
No |
String |
Ejemplo de respuesta para una solicitud correcta |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
apig-auth-type |
No |
Object |
Modo de autenticación de seguridad. Este parámetro es una matriz nula. Opciones:
|
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
description |
No |
String |
Descripción de la respuesta |
|
schema |
No |
Object |
Cuerpo de respuesta. Para obtener más información, consulte Tabla 12. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
description |
No |
String |
Descripción del cuerpo |
|
type |
No |
String |
Tipo de cuerpo, que puede ser FORM o STREAM |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
name |
Sí |
Object |
Modo de autenticación de seguridad. Para obtener más información, consulte Tabla 14. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
type |
Sí |
String |
Tipo de autenticación. Se admite apiKey. |
|
name |
Sí |
String |
Nombre de apiKey |
|
in |
Sí |
String |
Ubicación de apiKey |
|
x-apigateway-auth-type |
Sí |
String |
Tipo de autenticación extendido basado en apiKey. Se admiten los tipos de autenticación de AppSigv1, IAM e IAM_NONE. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
type |
Sí |
String |
Tipo de backend. Las opciones incluyen HTTP, HTTP-VPC, FUNCTION, y MOCK. |
|
parameters |
No |
Object |
Parámetros de backend. Para obtener más información, consulte Tabla 17. |
|
backend_define |
Sí |
Object |
Definición de backend Se admiten las siguientes definiciones de backend: |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
type |
Sí |
String |
Tipo de backend. Las opciones incluyen HTTP, HTTP-VPC, FUNCTION, y MOCK. |
|
name |
No |
String |
Nombre de política de backend |
|
parameters |
No |
Object |
Parámetros de backend. Para obtener más información, consulte Tabla 17. |
|
backend_define |
Sí |
Object |
Definición de backend Se admiten las siguientes definiciones de backend: |
|
conditions |
Sí |
Object |
Condiciones de política. Para obtener más información, consulte Tabla 22. |
|
effectMode |
Sí |
String |
Modo efectivo de la política de backend. Las opciones incluyen ANY y ALL. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
name |
Sí |
String |
Nombre del parámetro, que consta de un máximo de 32 bytes, comenzando con una letra. Solo se permiten letras, dígitos, puntos (.), guiones (-) y guiones bajos (_). Los nombres de los parámetros de encabezado no distinguen entre mayúsculas y minúsculas. |
|
value |
Sí |
String |
Valor de parámetro, que es un nombre de parámetro si el parámetro proviene de una solicitud |
|
in |
Sí |
String |
Ubicación del parámetro, que puede ser header, query o path |
|
origin |
Sí |
String |
Fuente de asignación de parámetros. Las opciones incluyen REQUEST y CONSTANT. |
|
description |
No |
String |
Significado del parámetro |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
address |
Sí |
String |
Dirección de servicio de backend. El formato es de <Domain name or IP address>:[Port number] |
|
scheme |
Sí |
String |
Protocolo de solicitud de backend. HTTP y HTTPS son compatibles. |
|
method |
Sí |
String |
Método de solicitud de backend. Las opciones incluyen GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH y ANY. |
|
path |
Sí |
String |
Ruta de solicitud de backend, que puede contener variables. |
|
timeout |
No |
Integer |
Tiempo de espera de la solicitud de backend en milisegundos. El valor oscila entre 1 y 60,000 y el valor predeterminado es 5000. |
|
description |
No |
String |
Descripción del backend |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
name |
Sí |
Array |
Nombre del canal de VPC |
|
scheme |
Sí |
String |
Protocolo de solicitud de backend. HTTP y HTTPS son compatibles. |
|
method |
Sí |
String |
Método de solicitud de backend. Las opciones incluyen GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH y ANY. |
|
path |
Sí |
String |
Ruta de solicitud de backend, que puede contener variables. |
|
timeout |
No |
Integer |
Tiempo de espera de la solicitud de backend en milisegundos. El valor oscila entre 1 y 60,000 y el valor predeterminado es 5000. |
|
host |
No |
String |
host de proxy de canal de VPC |
|
description |
No |
String |
Descripción del backend |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
function-urn |
Sí |
String |
Función URN |
|
version |
Sí |
String |
Versión de la función |
|
invocation-type |
Sí |
String |
Tipo de invocación de función. El valor puede ser async o sync. |
|
timeout |
No |
Integer |
Tiempo de espera de la función en milisegundos. El valor oscila entre 1 y 60,000 y el valor predeterminado es 5000. |
|
description |
No |
String |
Descripción del backend |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
result-content |
Sí |
String |
Respuesta de simulacro |
|
description |
No |
String |
Descripción del backend |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
type |
Sí |
String |
Tipo de condición de política. Las opciones incluyen equal, enum y pattern. |
|
value |
Sí |
String |
Valor de condición de política |
|
origin |
Sí |
String |
Origen de la condición de la política. Las opciones incluyen source y request. |
|
parameter |
No |
String |
Nombre del parámetro de entrada si el parámetro origin está establecido en request. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
acl_name |
No |
Object |
Política de control de acceso. Para obtener más información, consulte Tabla 24. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
acl-type |
Sí |
String |
Efecto de control de acceso. Las opciones incluyen PERMIT y DENY. |
|
entity-type |
Sí |
String |
Objeto de control de acceso. Solo se admiten direcciones IP y cuentas. |
|
value |
Sí |
String |
Valores de control de acceso, que se separan con comas (,). |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
throttle_name |
No |
Object |
Solicitud de política de limitación. Para obtener más información, consulte Tabla 26. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
api-limit |
Sí |
Integer |
Número máximo de veces que se puede invocar a una API |
|
user-limit |
No |
Integer |
Número de veces que un usuario puede invocar a la API |
|
app-limit |
No |
Integer |
Número de veces que una aplicación puede invocar a la API |
|
ip-limit |
No |
Integer |
Número de veces que se puede invocar a la API mediante una dirección IP |
|
interval |
Sí |
Integer |
Período de limitación |
|
unit |
Sí |
String |
Unidad de limitación, que puede ser SECOND, MINUTE, HOUR o DAY |
|
shared |
No |
Boolean |
Si desea compartir los límites de limitación entre las API |
|
special |
No |
Object |
Configuraciones de limitación de solicitudes excluidas. Para obtener más información, consulte Tabla 27. |
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
|---|---|---|---|
|
type |
Sí |
String |
Tipo de estrangulamiento de solicitud excluido, que puede ser APP o USER |
|
limit |
Sí |
Integer |
Límite de acceso |
|
instance |
Sí |
String |
Aplicación o usuario excluido |
Ejemplo de solicitud:
{
"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"
}
}
}
Respuesta
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
group_id |
String |
ID de grupo de API |
|
success |
Array |
Importar información de éxito |
|
failure |
Array |
Importar información de error |
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
id |
String |
ID de una API importada correctamente |
|
action |
String |
Tipo de importación. Opciones:
|
|
method |
String |
Método de solicitud |
|
path |
String |
Ruta de solicitud |
|
Parámetro |
Tipo |
Descripción |
|---|---|---|
|
error_code |
String |
Código de error |
|
error_msg |
String |
Mensaje de error |
|
method |
String |
Método de solicitud |
|
path |
String |
Ruta de solicitud |
Ejemplo de respuesta:
{
"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 estado
|
Código de estado |
Descripción |
|---|---|
|
200 |
OK |
|
400 |
Bad Request |
|
403 |
Forbidden |
|
500 |
Server Internal Error |