Fotos-Beispiel (API Gateway-Modelle und -Mapping-Vorlagen) - Amazon API Gateway

Fotos-Beispiel (API Gateway-Modelle und -Mapping-Vorlagen)

In den folgenden Abschnitten finden Sie Beispiele für Modelle und Mapping-Vorlagen, die für eine Beispiel-Foto-API in Amazon API Gateway verwendet werden könnten. Weitere Informationen über Modelle und Mapping-Vorlagen in API Gateway finden Sie unter Arbeiten mit Modellen und Mapping-Vorlagen.

Originaldaten (Beispiel zu Fotos)

Im Folgenden sind die ursprünglichen JSON-Daten zu dem Beispiel zu Fotos dargestellt:

{ "photos": { "page": 1, "pages": "1234", "perpage": 100, "total": "123398", "photo": [ { "id": "12345678901", "owner": "23456789@A12", "secret": "abc123d456", "server": "1234", "farm": 1, "title": "Sample photo 1", "ispublic": 1, "isfriend": 0, "isfamily": 0 }, { "id": "23456789012", "owner": "34567890@B23", "secret": "bcd234e567", "server": "2345", "farm": 2, "title": "Sample photo 2", "ispublic": 1, "isfriend": 0, "isfamily": 0 } ] } }

Eingabemodell (Beispiel zu Fotos)

Nachstehend finden Sie das Eingabemodell, das den ursprünglichen JSON-Daten für das Beispiel zu Fotos entspricht:

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PhotosInputModel", "type": "object", "properties": { "photos": { "type": "object", "properties": { "page": { "type": "integer" }, "pages": { "type": "string" }, "perpage": { "type": "integer" }, "total": { "type": "string" }, "photo": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "owner": { "type": "string" }, "secret": { "type": "string" }, "server": { "type": "string" }, "farm": { "type": "integer" }, "title": { "type": "string" }, "ispublic": { "type": "integer" }, "isfriend": { "type": "integer" }, "isfamily": { "type": "integer" } } } } } } } }

Eingabe-Mapping-Vorlage (Beispiel zu Fotos)

Im Folgenden finden Sie die Eingabe-Mapping-Vorlage, die den ursprünglichen JSON-Daten für das Beispiel zu Fotos entspricht:

#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", "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 ] } }

Umgewandelte Daten (Beispiel zu Fotos)

Im Folgenden finden Sie ein Beispiel dafür, wie die ursprünglichen JSON-Daten des Beispiels zu Fotos für die Ausgabe umgewandelt werden könnten:

{ "photos": [ { "id": "12345678901", "owner": "23456789@A12", "title": "Sample photo 1", "ispublic": 1, "isfriend": 0, "isfamily": 0 }, { "id": "23456789012", "owner": "34567890@B23", "title": "Sample photo 2", "ispublic": 1, "isfriend": 0, "isfamily": 0 } ] }

Ausgabemodell (Beispiel zu Fotos)

Im Folgenden sehen Sie das Ausgabemodell, das dem umgewandelten JSON-Datenformat entspricht:

{ "$schema": "http://json-schema.org/draft-04/schema#", "title": "PhotosOutputModel", "type": "object", "properties": { "photos": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "owner": { "type": "string" }, "title": { "type": "string" }, "ispublic": { "type": "integer" }, "isfriend": { "type": "integer" }, "isfamily": { "type": "integer" } } } } } }

Ausgabe-Mapping-Vorlage (Beispiel zu Fotos)

Im Folgenden sehen Sie die Ausgabe-Mapping-Vorlage, die dem umgewandelten JSON-Datenformat entspricht. Die Vorlagenvariablen hier basieren auf dem nicht umgewandelten Original-JSON-Datenformat:

#set($inputRoot = $input.path('$')) { "photos": [ #foreach($elem in $inputRoot.photos.photo) { "id": "$elem.id", "owner": "$elem.owner", "title": "$elem.title", "ispublic": $elem.ispublic, "isfriend": $elem.isfriend, "isfamily": $elem.isfamily }#if($foreach.hasNext),#end #end ] }