

# Objeto x-amazon-apigateway-integration
<a name="api-gateway-swagger-extensions-integration"></a>

 Especifica detalhes da integração de backend usada para esse método. Esta extensão é uma propriedade estendida do objeto de [Operação do OpenAPI](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#operation-object). O resultado é um objeto de [integração do API Gateway](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html). 


| Nome da propriedade | Tipo | Descrição | 
| --- | --- | --- | 
| cacheKeyParameters | Uma matriz de string | Uma lista de parâmetros de solicitação cujos valores devem ser armazenados em cache. | 
| cacheNamespace | string | Um grupo de tags específicas de API dos parâmetros em cache relacionados. | 
| connectionId | string | O ID de um [VpcLink](https://docs.aws.amazon.com/apigateway/latest/api/API_VpcLink.html) para a integração privada. | 
| connectionType | string | O tipo de conexão da integração. O valor válido é "VPC\$1LINK" para integração privada ou "INTERNET", para outras. | 
| credentials | string |   Para credenciais baseadas em função IAM da AWS, especifique o ARN de uma função IAM apropriada. Se não forem especificadas, as credenciais assumirão como padrão permissões baseadas em recursos que devem ser adicionadas manualmente para permitir que a API acesse o recurso. Para obter mais informações, consulte [Conceder permissões com o uso de uma política de recursos](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html#intro-permission-model-access-policy).  Observação: ao usar credenciais do IAM, verifique se os [endpoints regionais STS da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html) estão habilitados para a região na qual essa API está implantada para obter a melhor performance.   | 
| contentHandling | string | Tipos de conversão de codificação da carga de solicitação. Os valores válidos são 1) CONVERT\$1TO\$1TEXT, para converter uma carga binária em uma string codificada em base64 ou converter uma carga de texto em uma string codificada por utf-8 ou transferir a carga de texto de forma nativa sem modificação e 2) CONVERT\$1TO\$1BINARY para converter uma carga de texto em um blob decodificado em base64 ou transferir uma carga binária de forma nativa sem modificação. | 
| httpMethod | string |  O método HTTP usado na solicitação de integração. Para invocações de função do Lambda, o valor deve ser POST.  | 
| integrationSubtype | string | Especifica o subtipo para uma integração de serviço da AWS. Compatível apenas com APIs HTTP. Para obter subtipos de integração compatíveis, consulte [Referência do subtipo de integração](http-api-develop-integrations-aws-services-reference.md). | 
| integrationTarget | string | O receptor do ALB ou do NLB para o qual enviar a solicitação. Aceito apenas em integrações privadas que usem links da VPC V2. Para obter mais informações, consulte [Configurar links da VPC V2 no API Gateway](apigateway-vpc-links-v2.md). | 
| passthroughBehavior | string |  Especifica como uma carga de solicitação de um tipo de conteúdo não mapeado é transmitida na solicitação de integração sem modificação. Os valores com suporte when\$1no\$1templates, when\$1no\$1match e never. Para obter mais informações, consulte [Integration.passthroughBehavior](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html#passthroughBehavior). | 
| payloadFormatVersion | string | Especifica o formato da carga enviada para uma integração. Obrigatório para APIs HTTP. Para APIs HTTP, os valores suportados para integrações de proxy do Lambda são 1.0 e 2.0. Para todas as outras integrações, 1.0 é o único valor suportado. Para saber mais, consulte [Criar integrações de proxy AWS Lambda para APIs HTTP no API Gateway](http-api-develop-integrations-lambda.md) e [Referência do subtipo de integração](http-api-develop-integrations-aws-services-reference.md). | 
| requestParameters | [Objeto x-amazon-apigateway-integration.requestParameters](api-gateway-swagger-extensions-integration-requestParameters.md) | Para APIs REST, especifica mapeamentos de parâmetros de solicitação de método para parâmetros de solicitação de integração. Parâmetros de solicitação com suporte são `querystring`, `path`, `header` e `body`. Para APIs HTTP, parâmetros de solicitação são um mapa de chave-valor que especifica parâmetros que são passados para integrações `AWS_PROXY` com um `integrationSubtype` especificado. Você pode fornecer valores estáticos ou mapear dados de solicitação, variáveis de estágio ou variáveis de contexto que são avaliadas no tempo de execução. Para saber mais, consulte [Criar integrações de serviços da AWS para APIs HTTP no API Gateway](http-api-develop-integrations-aws-services.md).  | 
| requestTemplates | [Objeto x-amazon-apigateway-integration.requestTemplates](api-gateway-swagger-extensions-integration-requestTemplates.md) | Modelos de mapeamento para uma carga de solicitação de tipos MIME especificados. | 
| responses | [Objeto x-amazon-apigateway-integration.responses](api-gateway-swagger-extensions-integration-responses.md) | Define as respostas do método e especifica mapeamentos de parâmetros desejados ou mapeamentos de carga de respostas de integração para respostas de método.  | 
| responseTransferMode | string | O modo de transferência de resposta da integração. Utilize BUFFERED para o API Gateway esperar receber a resposta completa antes de iniciar a transmissão. Use STREAM para o API Gateway enviar respostas parciais de volta ao cliente assim que elas se tornem disponíveis. Para saber mais, consulte [Transmitir a resposta para suas integrações de proxy no API Gateway](response-transfer-mode.md). | 
| timeoutInMillis | integer | Tempos limite para a integração entre 50 ms e 29.000 ms. | 
| type | string |  O tipo de integração com o backend especificado. Os valores válidos são: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/apigateway/latest/developerguide/api-gateway-swagger-extensions-integration.html) Para obter mais informações sobre os tipos de integração, consulte [integration:type](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html#type).  | 
| tlsConfig | [Objeto x-amazon-apigateway-integration.tlsConfig](api-gateway-extensions-integration-tls-config.md) | Especifica a configuração de TLS para uma integração. | 
| uri | string | O URI de endpoint do backend. Para integrações do tipo aws, este é um valor de ARN. Para a integração HTTP, esta é a URL do endpoint HTTP, incluindo o esquema https ou http. | 

## Exemplos de x-amazon-apigateway-integration
<a name="api-gateway-swagger-extensions-integration-example"></a>

Para APIs HTTP, é possível definir integrações na seção de componentes da sua definição do OpenAPI. Para saber mais, consulte [Objeto x-amazon-apigateway-integrations](api-gateway-extensions-integrations.md).

```
"x-amazon-apigateway-integration": {
    "$ref": "#/components/x-amazon-apigateway-integrations/integration1"
}
```

 O exemplo a seguir cria uma integração com uma função do Lambda. Para fins de demonstração, supõe-se que os modelos de mapeamento de amostra mostrados em `requestTemplates` e `responseTemplates` dos exemplos abaixo apliquem a seguinte carga em formato JSON: `{ "name":"value_1", "key":"value_2", "redirect": {"url" :"..."} }` para gerar uma saída JSON de `{ "stage":"value_1", "user-id":"value_2" }` ou uma saída XML de `<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'"
            }
        }
    }
}
```

Observe que as aspas duplas (") da string JSON nos modelos de mapeamento devem ser escapadas por string (\$1"). 