Model data untuk REST API - Amazon API Gateway

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Model data untuk REST API

Di API Gateway, model mendefinisikan struktur data payload. Di API Gateway, model didefinisikan menggunakan draf skema JSON 4. Objek JSON berikut adalah data sampel dalam contoh Pet Store.

{ "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 SDK.

Contoh model data JSON untuk PetStore API.

Dalam model ini:

  1. $schemaObjek mewakili pengidentifikasi versi Skema JSON yang valid. Skema ini adalah draf Skema JSON v4.

  2. titleObjek adalah pengidentifikasi yang dapat dibaca manusia untuk model tersebut. Judul ini adalahPetStoreModel.

  3. Kata kunci required validasi membutuhkantype, dan price untuk validasi permintaan dasar.

  4. Model properties tersebut adalahid,type, danprice. Setiap objek memiliki properti yang dijelaskan dalam model.

  5. Objek hanya type dapat memiliki nilaidog,cat, ataufish.

  6. Objek price adalah angka dan dibatasi dengan minimum 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:

  1. Pada baris 2, $schema objek mewakili pengenal versi Skema JSON yang valid. Skema ini adalah draf Skema JSON v4.

  2. Pada baris 3, title objek adalah pengidentifikasi yang dapat dibaca manusia untuk model tersebut. Judul ini adalahPetStoreModel.

  3. Pada baris 5, kata kunci required validasi membutuhkantype, dan price untuk validasi permintaan dasar.

  4. Pada baris 6 - 17, modelnya adalahid,type, danprice. properties Setiap objek memiliki properti yang dijelaskan dalam model.

  5. Pada baris 12, objek hanya type dapat memiliki nilaidog,cat, ataufish.

  6. Pada baris 14 - 17, objek price adalah angka dan dibatasi dengan minimum 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 membuat SDK. Untuk bahasa yang diketik dengan kuat, seperti Java, Objective-C, atau Swift, objek sesuai dengan tipe data yang ditentukan pengguna (UDT). API Gateway membuat UDT jika Anda menyediakannya dengan model data saat Anda membuat SDK. Untuk informasi selengkapnya tentang transformasi data, lihatTemplat pemetaan untuk REST API.

Data keluaran
{ [ { "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 } ] }
Model keluaran
{ "$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 properti PetStoreOutputModel[i].description danPetStoreOutputModel[i].askingPrice. Jika tidak ada model yang disediakan, API Gateway menggunakan model kosong untuk membuat UDT default.

Langkah selanjutnya