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à.
Modelli di dati per REST APIs
In API Gateway, un modello definisce la struttura dei dati di un payload. In API Gateway, i modelli vengono definiti utilizzando la bozza JSON dello schema 4
{ "id": 1, "type": "dog", "price": 249.99 }
I dati contengono i valori id
, type
e price
dell'animale domestico. Un modello di questi dati consente di:
Usare la convalida di base delle richieste.
Creare modelli di mappatura per la trasformazione dei dati.
Crea un tipo di dati definito dall'utente (UDT) quando generi unSDK.
In questo modello:
-
L'
$schema
oggetto rappresenta un identificatore di versione JSON dello schema valido. Questo schema è la bozza dello JSON schema v4. -
L'oggetto
title
è un identificatore in formato leggibile del modello. Questo titolo èPetStoreModel
. -
La parola chiave di convalida
required
richiedetype
eprice
per la convalida di base della richiesta. -
La variabile
properties
del modello èid
,type
eprice
. Ogni oggetto ha proprietà che vengono descritte nel modello. -
L'oggetto
type
può avere solo i valoridog
,cat
ofish
. -
L'oggetto
price
è un numero ed è vincolato con un valoreminimum
di 25 e un valoremaximum
di 500.
1 { 2 "$schema": "http://json-schema.org/draft-04/schema#", 3 "title": "PetStoreModel", 4 "type" : "object", 5 "required" : [ "price", "type" ], 6 "properties" : { 7 "id" : { 8 "type" : "integer" 9 }, 10 "type" : { 11 "type" : "string", 12 "enum" : [ "dog", "cat", "fish" ] 13 }, 14 "price" : { 15 "type" : "number", 16 "minimum" : 25.0, 17 "maximum" : 500.0 18 } 19 } 20 }
In questo modello:
-
Alla riga 2, l'
$schema
oggetto rappresenta un identificatore di versione JSON dello schema valido. Questo schema è la bozza dello JSON schema v4. -
Alla riga 3, l'oggetto
title
è un identificatore in formato leggibile del modello. Questo titolo èPetStoreModel
. -
Alla riga 5, la parola chiave di convalida
required
richiedetype
eprice
per la convalida di base della richiesta. -
Alle righe da 6 a 17, la variabile
properties
del modello èid
.type
eprice
. Ogni oggetto ha proprietà che vengono descritte nel modello. -
Alla riga 12, l'oggetto
type
può avere solo i valoridog
,cat
ofish
. -
Alle righe da 14 a 17, l'oggetto
price
è un numero ed è vincolato con un valoreminimum
di 25 e un valoremaximum
di 500.
Creazione di modelli più complessi
È possibile utilizzare la primitiva $ref
per creare definizioni riutilizzabili per modelli più lunghi. Ad esempio, è possibile creare una definizione chiamata Price
nella sezione definitions
che descrive l'oggetto price
. Il valore di $ref
è la definizione Price
.
{ "$schema" : "http://json-schema.org/draft-04/schema#", "title" : "PetStoreModelReUsableRef", "required" : ["price", "type" ], "type" : "object", "properties" : { "id" : { "type" : "integer" }, "type" : { "type" : "string", "enum" : [ "dog", "cat", "fish" ] }, "price" : { "$ref": "#/definitions/Price" } }, "definitions" : { "Price": { "type" : "number", "minimum" : 25.0, "maximum" : 500.0 } } }
È inoltre possibile fare riferimento a un altro schema del modello definito in un file di modello esterno. Impostare il valore della proprietà $ref
sulla posizione del modello. Nell'esempio seguente, il Price
modello è definito nel PetStorePrice
modello in APIa1234
.
{ "$schema" : "http://json-schema.org/draft-04/schema#", "title" : "PetStorePrice", "type": "number", "minimum": 25, "maximum": 500 }
Il modello più lungo può fare riferimento al modello PetStorePrice
.
{ "$schema" : "http://json-schema.org/draft-04/schema#", "title" : "PetStoreModelReusableRefAPI", "required" : [ "price", "type" ], "type" : "object", "properties" : { "id" : { "type" : "integer" }, "type" : { "type" : "string", "enum" : [ "dog", "cat", "fish" ] }, "price" : { "$ref": "https://apigateway.amazonaws.com/restapis/a1234/models/PetStorePrice" } } }
Utilizzo di modelli di dati di output
In caso di trasformazione dei dati, è possibile definire un modello di payload nella risposta dell'integrazione. Un modello di payload può essere utilizzato quando si genera unSDK. Per linguaggi fortemente tipizzati, come Java, Objective-C o Swift, l'oggetto corrisponde a un tipo di dati definito dall'utente (). UDT APIGateway crea un UDT file se gli fornisci un modello di dati quando generi un. SDK Per ulteriori informazioni sulle trasformazioni dei dati, consultare Modelli di mappatura per REST APIs.
L'esempio seguente mostra i dati in uscita da una risposta di integrazione.
{ [ { "description" : "Item 1 is a dog.", "askingPrice" : 249.99 }, { "description" : "Item 2 is a cat.", "askingPrice" : 124.99 }, { "description" : "Item 3 is a fish.", "askingPrice" : 0.99 } ] }
L'esempio seguente è un modello di payload che descrive i dati di output.
{ "$schema": "http://json-schema.org/draft-04/schema#", "title": ”PetStoreOutputModel", "type" : "object", "required" : [ "description", "askingPrice" ], "properties" : { "description" : { "type" : "string" }, "askingPrice" : { "type" : "number", "minimum" : 25.0, "maximum" : 500.0 } } }
Con questo modello, è possibile chiamare an SDK per recuperare i valori delle askingPrice
proprietà description
e leggendo le proprietà PetStoreOutputModel[i].description
andPetStoreOutputModel[i].askingPrice
. Se non viene fornito alcun modello, API Gateway utilizza il modello vuoto per creare un modello predefinitoUDT.
Passaggi successivi
-
Questa sezione fornisce risorse che è possibile utilizzare per acquisire maggiori conoscenze sui concetti trattati in questo argomento.
È possibile seguire i tutorial relativi alla convalida delle richieste:
-
È possibile ottenere ulteriori informazioni sulla trasformazione dei dati e sui modelli di mappatura, Modelli di mappatura per REST APIs.
-
Puoi anche vedere modelli di dati più complicati. Per informazioni, consulta Esempi di modelli di dati e modelli di mappatura per Gateway API.