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á.
Exemplo de fotos (modelos de API Gateway e modelos de mapeamento)
O exemplo a seguir mostra uma API de álbum de fotos no API Gateway. Fornecemos um exemplo de transformação de dados, modelos adicionais e modelos de mapeamento. Para ter mais informações sobre transformações de dados, consulte Noções básicas de modelos de mapeamento. Para ter mais informações sobre modelos e modelos de mapeamento no API Gateway, consulte PetStore modelo de mapeamento.
Tópicos
Exemplo de transformação de dados
O exemplo a seguir mostra como transformar dados de entrada sobre fotos usando um modelo de mapeamento Velocity Template Language (VTL). Para obter mais informações sobre o VTL (Velocity Template Language), consulte o documento Apache Velocity - VTL Reference
Dados de entrada |
|
Modelo de mapeamento de saída |
|
Dados de saída |
|
Modelo de entrada para dados de fotos
Você pode definir um modelo para seus dados de entrada. Esse modelo de entrada exige que você faça upload de uma foto e especifica no mínimo 10 fotos por página. Você pode usar esse modelo de entrada para gerar um SDK ou ativar uma validação de solicitação para sua API.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PhotosInputModel", "type": "object", "properties": { "photos": { "type": "object", "required" : [ "photo" ], "properties": { "page": { "type": "integer" }, "pages": { "type": "string" }, "perpage": { "type": "integer", "minimum" : 10 }, "total": { "type": "string" }, "photo": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "owner": { "type": "string" }, "photographer_first_name" : {"type" : "string"}, "photographer_last_name" : {"type" : "string"}, "secret": { "type": "string" }, "server": { "type": "string" }, "farm": { "type": "integer" }, "title": { "type": "string" }, "ispublic": { "type": "boolean" }, "isfriend": { "type": "boolean" }, "isfamily": { "type": "boolean" } } } } } } } }
Modelo de saída para dados de fotos
Você pode definir um modelo para seus dados de saída. Você pode usar esse modelo como um modelo de resposta de método, que é necessário quando você gera um SDK fortemente tipado para a API. Isso faz com que a saída seja convertida em uma classe adequada em Java ou Objective-C.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PhotosOutputModel", "type": "object", "properties": { "photos": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "photographedBy": { "type": "string" }, "title": { "type": "string" }, "ispublic": { "type": "boolean" }, "isfriend": { "type": "boolean" }, "isfamily": { "type": "boolean" } } } } } }
Modelo de mapeamento de entrada para dados de fotos
Você pode definir um modelo de mapeamento para modificar os dados de entrada. É possível modificar os dados de entrada para ter respostas adicionais de integração ou integração de funções.
#set($inputRoot = $input.path('$')) { "photos": { "page": $inputRoot.photos.page, "pages": "$inputRoot.photos.pages", "perpage": $inputRoot.photos.perpage, "total": "$inputRoot.photos.total", "photo": [ #foreach($elem in $inputRoot.photos.photo) { "id": "$elem.id", "owner": "$elem.owner", "photographer_first_name" : "$elem.photographer_first_name", "photographer_last_name" : "$elem.photographer_last_name", "secret": "$elem.secret", "server": "$elem.server", "farm": $elem.farm, "title": "$elem.title", "ispublic": $elem.ispublic, "isfriend": $elem.isfriend, "isfamily": $elem.isfamily }#if($foreach.hasNext),#end #end ] } }