Importación de API a un grupo de API existente
Función
Esta API se utiliza para crear o actualizar API en un grupo de API mediante la importación de definiciones de Swagger. 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 |
|---|---|
| PUT | /v1.0/apigw/openapi?group_id={0}&mode={1} |
En la siguiente tabla se enumeran los parámetros del URI.
| Parámetro | Obligatorio | Tipo | Descripción |
|---|---|---|---|
| group_id | Sí | String | ID de grupo de API |
| mode | Sí | String | Medidas a tomar si se produce un conflicto. Opciones: merge y override.
|
| extend_mode | 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 | No | String | Nombre de un grupo de API. Este parámetro no tiene efecto cuando el grupo de API se importa a un grupo existente. |
| 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 | Yes | Integer | Período de limitación |
| unit | Yes | 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 |