Comportamentos de passagem direta de integração - Amazon API Gateway

Comportamentos de passagem direta de integração

Com integrações não proxy, quando uma solicitação de método contém uma carga, e o cabeçalho Content-Type não corresponde a nenhum modelo de mapeamento especificado ou nenhum modelo de mapeamento está definido, você pode optar por repassar a carga da solicitação fornecida pelo cliente por meio da solicitação de integração para o back-end sem transformação. O processo é conhecido como passagem direta de integração.

Para integrações de proxy, o API Gateway repassa toda a solicitação para o backend, e você não tem a opção de modificar os comportamentos de passagem.

O comportamento de passagem direta real de uma solicitação de entrada é determinado pela opção que você escolhe para um modelo de mapeamento especificado, durante a configuração da solicitação de integração, e pelo cabeçalho Content-Type que um cliente define na solicitação de entrada. Existem três opções:

Quando nenhum modelo corresponder ao cabeçalho Content-Type da solicitação

Escolha essa opção se desejar que o corpo da solicitação de método passe a solicitação de integração para o back-end sem transformação quando o tipo de conteúdo da solicitação de método não corresponder a nenhum dos tipos de conteúdo associados aos modelos de mapeamento.

Ao chamar a API do API Gateway, escolha essa opção definindo WHEN_NO_MATCH como o valor da propriedade passthroughBehavior na Integração.

Quando não há modelos definidos (recomendado)

Escolha essa opção se desejar que o corpo da solicitação de método passe a solicitação de integração para o back-end sem transformação quando nenhum modelo de mapeamento estiver definido na solicitação de integração. Se um modelo for definido quando essa opção for selecionada, a solicitação de método de um tipo de conteúdo não mapeado será rejeitada com uma resposta HTTP 415 Tipo de mídia sem suporte.

Ao chamar a API do API Gateway, escolha essa opção definindo WHEN_NO_TEMPLATES como o valor da propriedade passthroughBehavior na Integração.

Nunca

Escolha essa opção se não desejar que o corpo da solicitação de método passe a solicitação de integração para o back-end sem transformação quando nenhum modelo de mapeamento estiver definido na solicitação de integração. Se um modelo for definido quando essa opção for selecionada, a solicitação de método de um tipo de conteúdo não mapeado será rejeitada com uma resposta HTTP 415 Tipo de mídia sem suporte.

Ao chamar a API do API Gateway, escolha essa opção definindo NEVER como o valor da propriedade passthroughBehavior na Integração.

Os exemplos a seguir ilustram os possíveis comportamentos de passagem direta.

Exemplo 1: um modelo de mapeamento é definido na solicitação de integração para o tipo de conteúdo application/json.

Cabeçalho Content-Type\opção de passagem direta selecionada WHEN_NO_MATCH WHEN_NO_TEMPLATES NEVER
Nenhum (padrão para application/json) A carga da solicitação é transformada usando o modelo. A carga da solicitação é transformada usando o modelo. A carga da solicitação é transformada usando o modelo.
application/json A carga da solicitação é transformada usando o modelo. A carga da solicitação é transformada usando o modelo. A carga da solicitação é transformada usando o modelo.
application/xml A carga da solicitação não é transformada e é enviada ao backend no estado em que se encontra. A solicitação é rejeitada com uma resposta HTTP 415 Unsupported Media Type. A solicitação é rejeitada com uma resposta HTTP 415 Unsupported Media Type.

Exemplo 2: um modelo de mapeamento é definido na solicitação de integração para o tipo de conteúdo application/xml.

Cabeçalho Content-Type\opção de passagem direta selecionada WHEN_NO_MATCH WHEN_NO_TEMPLATES NEVER
Nenhum (padrão para application/json) A carga da solicitação não é transformada e é enviada ao backend no estado em que se encontra. A solicitação é rejeitada com uma resposta HTTP 415 Unsupported Media Type. A solicitação é rejeitada com uma resposta HTTP 415 Unsupported Media Type.
application/json A carga da solicitação não é transformada e é enviada ao backend no estado em que se encontra. A solicitação é rejeitada com uma resposta HTTP 415 Unsupported Media Type. A solicitação é rejeitada com uma resposta HTTP 415 Unsupported Media Type.
application/xml A carga da solicitação é transformada usando o modelo. A carga da solicitação é transformada usando o modelo. A carga da solicitação é transformada usando o modelo.