Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Model data untuk REST APIs
Dalam API Gateway, model mendefinisikan struktur data dari payload. Di API Gateway, model didefinisikan menggunakan JSONskema draf 4
{ "id": 1, "type": "dog", "price": 249.99 }
Data berisiid
,type
, dan price
hewan peliharaan. Model data ini memungkinkan Anda untuk:
Gunakan validasi permintaan dasar.
Buat template pemetaan untuk transformasi data.
Buat tipe data yang ditentukan pengguna (UDT) saat Anda membuat file. SDK
Dalam model ini:
-
$schema
Objek mewakili pengidentifikasi versi JSON Skema yang valid. Skema ini adalah draf JSON Skema v4. -
title
Objek adalah pengidentifikasi yang dapat dibaca manusia untuk model tersebut. Judul ini adalahPetStoreModel
. -
Kata kunci
required
validasi membutuhkantype
, danprice
untuk validasi permintaan dasar. -
Model
properties
tersebut adalahid
,type
, danprice
. Setiap objek memiliki properti yang dijelaskan dalam model. -
Objek hanya
type
dapat memiliki nilaidog
,cat
, ataufish
. -
Objek
price
adalah angka dan dibatasi denganminimum
25 dan 500maximum
.
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 }
Dalam model ini:
-
Pada baris 2,
$schema
objek mewakili pengidentifikasi versi JSON Skema yang valid. Skema ini adalah draf JSON Skema v4. -
Pada baris 3,
title
objek adalah pengidentifikasi yang dapat dibaca manusia untuk model tersebut. Judul ini adalahPetStoreModel
. -
Pada baris 5, kata kunci
required
validasi membutuhkantype
, danprice
untuk validasi permintaan dasar. -
Pada baris 6 - 17, modelnya adalah
id
,type
, danprice
.properties
Setiap objek memiliki properti yang dijelaskan dalam model. -
Pada baris 12, objek hanya
type
dapat memiliki nilaidog
,cat
, ataufish
. -
Pada baris 14 - 17, objek
price
adalah angka dan dibatasi denganminimum
25 dan 500maximum
.
Membuat model yang lebih kompleks
Anda dapat menggunakan $ref
primitif untuk membuat definisi yang dapat digunakan kembali untuk model yang lebih panjang. Misalnya, Anda dapat membuat definisi yang disebut Price
di definitions
bagian yang menjelaskan price
objek. Nilai $ref
adalah Price
definisi.
{ "$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 } } }
Anda juga dapat mereferensikan skema model lain yang ditentukan dalam file model eksternal. Tetapkan nilai $ref
properti ke lokasi model. Dalam contoh berikut, Price
model didefinisikan dalam PetStorePrice
model di APIa1234
.
{ "$schema" : "http://json-schema.org/draft-04/schema#", "title" : "PetStorePrice", "type": "number", "minimum": 25, "maximum": 500 }
Model yang lebih panjang dapat merujuk PetStorePrice
model.
{ "$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" } } }
Menggunakan model data keluaran
Jika Anda mengubah data, Anda dapat menentukan model payload dalam respons integrasi. Model payload dapat digunakan saat Anda menghasilkan fileSDK. Untuk bahasa yang diketik dengan kuat, seperti Java, Objective-C, atau Swift, objek sesuai dengan tipe data yang ditentukan pengguna (). UDT APIGateway membuat UDT jika Anda menyediakannya dengan model data saat Anda menghasilkan fileSDK. Untuk informasi selengkapnya tentang transformasi data, lihatTemplate pemetaan untuk REST APIs.
Contoh berikut adalah output data dari respon integrasi.
{ [ { "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 } ] }
Contoh berikut adalah model payload yang menggambarkan data 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 } } }
Dengan model ini, Anda dapat memanggil SDK untuk mengambil nilai description
dan askingPrice
properti dengan membaca PetStoreOutputModel[i].description
dan PetStoreOutputModel[i].askingPrice
properti. Jika tidak ada model yang disediakan, API Gateway menggunakan model kosong untuk membuat defaultUDT.
Langkah selanjutnya
-
Bagian ini menyediakan sumber daya yang dapat Anda gunakan untuk mendapatkan lebih banyak pengetahuan tentang konsep yang disajikan dalam topik ini.
Anda dapat mengikuti tutorial validasi permintaan:
-
Anda bisa mendapatkan informasi lebih lanjut tentang transformasi data dan template pemetaan,Template pemetaan untuk REST APIs.
-
Anda juga dapat melihat model data yang lebih rumit. Lihat Contoh model data dan templat pemetaan untuk API Gateway.