Objeto x-amazon-apigateway-integration
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
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 para a integração privada. |
connectionType |
string |
O tipo de conexão da integração. O valor válido é "VPC_LINK" 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. Observação: ao usar credenciais do IAM, verifique se os endpoints regionais STS da AWS 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_TO_TEXT , 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_TO_BINARY 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. |
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_no_templates , when_no_match e never . Para obter mais informações, consulte Integration.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 e Referência do subtipo de integração. |
requestParameters |
Objeto x-amazon-apigateway-integration.requestParameters | 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 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 |
requestTemplates |
Objeto x-amazon-apigateway-integration.requestTemplates | Modelos de mapeamento para uma carga de solicitação de tipos MIME especificados. |
responses |
Objeto x-amazon-apigateway-integration.responses | 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. |
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:
Para obter mais informações sobre os tipos de integração, consulte integration:type. |
tlsConfig |
Objeto x-amazon-apigateway-integration.tlsConfig | 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
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.
"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 (\").