Model data untuk REST APIs - APIGerbang Amazon

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. JSONObjek 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 file. SDK

Contoh model JSON data untuk PetStore API.

Dalam model ini:

  1. $schemaObjek mewakili pengidentifikasi versi JSON Skema yang valid. Skema ini adalah draf JSON Skema 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 pengidentifikasi versi JSON Skema yang valid. Skema ini adalah draf JSON Skema 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 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