As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Noções básicas de modelos de mapeamento
No API Gateway, a solicitação ou a resposta de método de uma API pode receber uma carga útil em um formato diferente da solicitação ou da resposta de integração.
Você pode transformar seus dados para:
Combinar a carga útil com um formato especificado pela API.
Substituir parâmetros de solicitação e resposta e códigos de status de uma API.
Retornar os cabeçalhos de resposta selecionados pelo cliente.
Associe parâmetros de caminho, parâmetros de sequência de caracteres de consulta ou parâmetros de cabeçalho na solicitação de método do proxy ou AWS service (Serviço da AWS) proxy HTTP.
Selecione quais dados enviar usando a integração Serviços da AWS, como funções do Amazon DynamoDB ou Lambda, ou endpoints HTTP.
Você pode usar modelos de mapeamento para transformar seus dados. Um modelo de mapeamento é um script expresso em Velocity Template Language (VTL)
O exemplo a seguir mostra dados de entrada, um modelo de mapeamento e dados de saída para uma transformação dos PetStore dados
Dados de entrada |
|
Modelo de mapeamento |
|
Dados de saída |
|
O diagrama a seguir mostra detalhes desse modelo de mapeamento.
A variável
$inputRoot
representa o objeto raiz nos dados JSON originais da seção anterior. As diretivas começam com o símbolo#
.Um loop
foreach
itera em cada objeto nos dados JSON originais.A descrição é uma concatenação do
id
e dotype
do animal de estimação dos dados JSON originais.askingPrice
é oprice
é o preço dos dados JSON originais.
1 #set($inputRoot = $input.path('$')) 2 [ 3 #foreach($elem in $inputRoot) 4 { 5 "description" : "Item $elem.id is a $elem.type.", 6 "askingPrice" : $elem.price 7 }#if($foreach.hasNext),#end 8 #end 9 ]
Neste modelo de mapeamento:
-
Na linha 1, a variável
$inputRoot
representa o objeto raiz nos dados JSON originais da seção anterior. As diretivas começam com o símbolo#
. -
Na linha 3, um loop
foreach
itera em cada objeto nos dados JSON originais. -
Na linha 5, a
description
é uma concatenação doid
e dotype
do animal de estimação dos dados JSON originais. -
Na linha 6,
askingPrice
é oprice
, o preço dos dados JSON originais.
Para obter mais informações sobre o Velocity Template Language, consulte Apache Velocity - VTL Reference
O modelo de mapeamento pressupõe que os dados subjacentes sejam de um objeto JSON. Ele não exige que um modelo seja definido para os dados. No entanto, um modelo para os dados de saída possibilita que os dados anteriores sejam retornados como um objeto específico da linguagem. Para ter mais informações, consulte Noções básicas dos modelos de dados.
Modelos de mapeamento complexos
Também é possível criar modelos de mapeamento mais complicados. O exemplo a seguir mostra a concatenação de referências e um limite de cem para determinar se um animal de estimação é acessível.
Dados de entrada |
|
Modelo de mapeamento |
|
Dados de saída |
|
Veja o exemplo de álbum de fotos Exemplo de fotos para ver um modelo mais complicado.