Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esempi di modelli di dati e modelli di mappatura per API Gateway
Nelle sezioni seguenti vengono forniti esempi di modelli e modelli di mappatura che potrebbero essere utilizzati come punto di partenza per le API in API Gateway. Per ulteriori informazioni sulle trasformazioni dei dati, consultare Informazioni sui modelli di mappatura. Per ulteriori informazioni sui modelli di dati, vedereInformazioni sui modelli di dati.
Esempio di album fotografico
L'esempio seguente mostra l'API di un album fotografico in Gateway Amazon API. Viene fornito un esempio di trasformazione dei dati, modelli aggiuntivi e modelli di mappatura.
Argomenti
Esempio di trasformazione dei dati
L'esempio seguente mostra come trasformare i dati di input relativi alle foto utilizzando un modello di mappatura Velocity Template Language (VTL). Per ulteriori informazioni su Velocity Template Language, consulta Riferimento ad Apache Velocity - VTL
Dati di input |
|
Modello di mappatura di output |
|
Dati di output |
|
Modello di input per i dati relativi alle foto
È possibile definire un modello per i dati di input. Questo modello di input richiede il caricamento di una foto e specifica un minimo di 10 foto per ogni pagina. È possibile utilizzare questo modello di input per generare un SDK o per attivare la convalida delle richieste per l'API in uso.
{ "$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" } } } } } } } }
Modello di output per i dati relativi alle foto
È possibile definire un modello per i dati di output. È possibile utilizzare questo metodo per un modello di risposta del metodo, che è necessario quando si genera un SDK tipizzato in modo sicuro per l'API. Ciò garantisce che l'output venga trasmesso in una classe appropriata in Java o 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" } } } } } }
Modello di mappatura di input per i dati relativi alle foto
È possibile definire un modello di mappatura per modificare i dati di input. È possibile modificare i dati di input per ulteriori integrazioni di funzioni o risposte di integrazione.
#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 ] } }
Esempio di articolo di notizie
L'esempio seguente mostra l'API di un articolo di notizie in API Gateway. Viene fornito un esempio di trasformazione dei dati, modelli aggiuntivi e modelli di mappatura.
Argomenti
Esempio di trasformazione dei dati
L'esempio seguente mostra come trasformare i dati di input relativi a un articolo di notizie utilizzando un modello di mappatura Velocity Template Language (VTL). Per ulteriori informazioni su Velocity Template Language, consulta Riferimento ad Apache Velocity - VTL
Dati di input |
|
Modello di mappatura di output |
|
Dati di output |
|
Modello di input per i dati delle notizie
È possibile definire un modello per i dati di input. Questo modello di input richiede che un articolo di notizie contenga un URL, un titolo e un corpo. È possibile utilizzare questo modello di input per generare un SDK o per attivare la convalida delle richieste per l'API in uso.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "NewsArticleInputModel", "type": "object", "properties": { "count": { "type": "integer" }, "items": { "type": "array", "items": { "type": "object", "required": [ "article_url", "title", "body" ], "properties": { "last_updated_date": { "type": "string" }, "expire_date": { "type": "string" }, "author_first_name": { "type": "string" }, "description": { "type": "string" }, "creation_date": { "type": "string" }, "title": { "type": "string" }, "allow_comment": { "type": "boolean" }, "author": { "type": "object", "properties": { "last_name": { "type": "string" }, "email": { "type": "string" }, "first_name": { "type": "string" } } }, "body": { "type": "string" }, "publish_date": { "type": "string" }, "version": { "type": "string" }, "author_last_name": { "type": "string" }, "parent_id": { "type": "integer" }, "article_url": { "type": "string" } } } }, "version": { "type": "integer" } } }
Modello di output per i dati delle notizie
È possibile definire un modello per i dati di output. È possibile utilizzare questo metodo per un modello di risposta del metodo, che è necessario quando si genera un SDK tipizzato in modo sicuro per l'API. Ciò garantisce che l'output venga trasmesso in una classe appropriata in Java o 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" } } } } } }
Modello di mappatura degli input per i dati relativi alle notizie
È possibile definire un modello di mappatura per modificare i dati di input. È possibile modificare i dati di input per ulteriori integrazioni di funzioni o risposte di integrazione.
#set($inputRoot = $input.path('$')) { "count": $inputRoot.count, "items": [ #foreach($elem in $inputRoot.items) { "last_updated_date": "$elem.last_updated_date", "expire_date": "$elem.expire_date", "author_first_name": "$elem.author_first_name", "description": "$elem.description", "creation_date": "$elem.creation_date", "title": "$elem.title", "allow_comment": "$elem.allow_comment", "author": { "last_name": "$elem.author.last_name", "email": "$elem.author.email", "first_name": "$elem.author.first_name" }, "body": "$elem.body", "publish_date": "$elem.publish_date", "version": "$elem.version", "author_last_name": "$elem.author_last_name", "parent_id": $elem.parent_id, "article_url": "$elem.article_url" }#if($foreach.hasNext),#end #end ], "version": $inputRoot.version }