Objeto x-amazon-apigateway-integration
Especifica los detalles de la integración del backend utilizada para este método. Esta extensión es una propiedad extendida del objeto Operation de OpenAPI
Nombre de la propiedad | Tipo | Descripción |
---|---|---|
cacheKeyParameters |
Matriz de string |
Una lista de parámetros de la solicitud cuyos valores se van a almacenar en caché. |
cacheNamespace |
string |
Un grupo de etiquetas específicas de la API de parámetros almacenados en caché relacionados. |
connectionId |
string |
ID de un enlace VpcLink de la integración privada. |
connectionType |
string |
Tipo de conexión de la integración. El valor válido es "VPC_LINK" para la integración privada o "INTERNET" para los demás casos. |
credentials |
string |
Para las credenciales basadas en roles de AWS IAM, especifique el ARN de un rol de IAM. Si no se especifica, las credenciales adoptan de manera predeterminada los permisos basados en recursos que se deben añadir manualmente para permitir a la API tener acceso al recurso. Para obtener más información, consulte Concesión de permisos mediante una política de recursos. Nota: Cuando utilice credenciales de IAM, asegúrese de que los puntos de enlace regionales STS de AWS están habilitados para la región en la que se implementa esta API para obtener un rendimiento óptimo. |
contentHandling |
string |
Tipos de conversión de codificación de la carga de solicitud. Los valores válidos son 1) CONVERT_TO_TEXT , para convertir una carga binaria en una cadena codificada en base64 o para convertir una carga de texto en una cadena codificada en utf-8 o para transferir la carga de texto de forma nativa sin modificaciones, y 2) CONVERT_TO_BINARY , para convertir una carga de texto en un blob descodificado en base64 o para transferir una carga binaria de forma nativa sin modificaciones. |
httpMethod |
string |
El método HTTP utilizado en la solicitud de integración. Para las invocaciones de funciones de Lambda, el valor debe ser POST . |
integrationSubtype |
string |
Especifica el subtipo de integración para una integración del servicio de AWS. Solo se admite para API HTTP. Para obtener información sobre los subtipos de integración compatibles, consulte Referencia del subtipo de integración. |
passthroughBehavior |
string |
Especifica cómo se pasa una carga de solicitud de tipo de contenido sin asignar a través de la solicitud de integración sin modificación. Los valores admitidos son when_no_templates , when_no_match y never . Para obtener más información, consulte Integration.passthroughBehavior. |
payloadFormatVersion |
string |
Especifica el formato de la carga enviada a una integración. Es necesario para las API HTTP. Para las API HTTP, los valores admitidos para las integraciones de proxy Lambda son 1.0 y 2.0 . Para el resto de integraciones, 1.0 es el único valor admitido. Para obtener más información, consulte Creación de integraciones de proxy de AWS Lambda para las API de HTTP en API Gateway y Referencia del subtipo de integración. |
requestParameters |
Objeto x-amazon-apigateway-integration.requestParameters | Para API REST, especifica las asignaciones de los parámetros de solicitud de método a los parámetros de solicitud de integración. Los parámetros de solicitud admitidos son Para las API HTTP, los parámetros de solicitud son un mapeo de clave-valor que especifica los parámetros que se pasan a integraciones de |
requestTemplates |
Objeto x-amazon-apigateway-integration.requestTemplates | Plantillas de mapeo para una carga de solicitud de tipos MIME especificados. |
responses |
Objeto x-amazon-apigateway-integration.responses | Define las respuestas del método y especifica las asignaciones de parámetros o de carga deseadas desde respuestas de integración a respuestas de método. |
timeoutInMillis |
integer |
Tiempos de espera de la integración comprendidos entre 50 ms y 29.000 ms. |
type |
string |
El tipo de integración con el backend especificado. Los valores válidos son:
Para obtener más información sobre los tipos de integración, consulte integration:type. |
tlsConfig |
Objeto x-amazon-apigateway-integration.tlsConfig | Especifica la configuración de TLS para una integración. |
uri |
string |
El URI del punto de enlace del backend. Para integraciones del tipo aws , este es un valor de ARN. Para la integración HTTP, esta es la dirección URL del punto de enlace HTTP incluido el esquema https o http . |
Ejemplos de x-amazon-apigateway-integration
En API HTTP, puede definir integraciones en la sección de componentes de la definición de OpenAPI. Para obtener más información, consulte Objeto x-amazon-apigateway-integrations.
"x-amazon-apigateway-integration": { "$ref": "#/components/x-amazon-apigateway-integrations/
integration1
" }
El siguiente ejemplo se crea una integración con una función de Lambda. Para fines de demostración, en las plantillas de asignación de ejemplo en requestTemplates
y responseTemplates
de los ejemplos que aparecen a continuación se asume que se aplica la siguiente carga con formato JSON: {
"name":"value_1", "key":"value_2", "redirect": {"url" :"..."} }
para generar una salida JSON { "stage":"value_1", "user-id":"value_2" }
o una salida XML <stage>value_1</stage>
.
"x-amazon-apigateway-integration" : { "type" : "aws", "uri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:012345678901:function:HelloWorld/invocations", "httpMethod" : "POST", "credentials" : "arn:aws:iam::012345678901:role/apigateway-invoke-lambda-exec-role", "requestTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " }, "requestParameters" : { "integration.request.path.
stage
" : "method.request.querystring.version
", "integration.request.querystring.provider
" : "method.request.querystring.vendor
" }, "cacheNamespace" : "cache namespace", "cacheKeyParameters" : [], "responses" : { "2\\d{2}" : { "statusCode" : "200", "responseParameters" : { "method.response.header.requestId
" : "integration.response.header.cid
" }, "responseTemplates" : { "application/json" : "#set ($root=$input.path('$')) { \"stage\": \"$root.name\", \"user-id\": \"$root.key\" }", "application/xml" : "#set ($root=$input.path('$')) <stage>$root.name</stage> " } }, "302" : { "statusCode" : "302", "responseParameters" : { "method.response.header.Location" : "integration.response.body.redirect.url
" } }, "default" : { "statusCode" : "400", "responseParameters" : { "method.response.header.test-method-response-header
" : "'static value'
" } } } }
Tenga en cuenta que las comillas dobles (") de la cadena JSON en las plantillas de mapeo deben incluirse en una secuencia de escape (\").