Sipariş uçtan uca veri feed'inin ve sipariş tamamlama API tanımlarının makine tarafından okunabilir bir sürümü, istemci kaynak kodu oluşturmak ve JSON verilerinin yapısını doğrulamak için kullanıma sunulur. Bu sayede, entegrasyon için gereken uygulama özelliklerini ve iş mantığını geliştirmeye daha fazla zaman ayırabilirsiniz.
Bu örnekte, kullanımı kolay bir istemci kitaplığı oluşturmak için quicktype CLI'sini kullanıyoruz.
JSON şemalarını indirme
Veri feed'lerinin ve API'lerin makine tarafından okunabilen bu sürümleri, kod oluşturma ve doğrulama için gereklidir.
Kod oluşturma
API'ler değiştiğinde kodları yeniden oluşturmak için Hızlı Klavye'yi kullanabilirsiniz. Böylece, etkilenen uygulama kodunu güncellemeniz yeterlidir. QuickType; C++, Java, JavaScript, Python ve diğer programlama dillerini destekler.
İstemci kitaplıklarını oluşturmak için JSON şeması tanımlarını destekleyen diğer mevcut kod oluşturucu araçlarını da kullanabilirsiniz.
Sipariş uçtan uca entegrasyonunuz için quicktype'i proje dizinine yüklemek üzere Node paket yöneticisini (npm) kullanın.
npm install quicktype
TypeScript
- Siparişin Uçtan Uca veri feed'leri için istemci kaynak kodu oluşturun.
quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
- Sağlama API'si için istemci kaynak kodu oluşturun.
quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
- Gerçek zamanlı güncellemeler API'si için istemci kaynak kodu oluşturun.
quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
- Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.
Kullanım ve doğrulama
Öğe oluşturma ve bunları JSON'a dönüştürme örneği:
import { Convert, Fee, OperationHours, Restaurant, Service, ServiceArea, ServiceHours, Menu, MenuSection, Availability, MenuItem, MenuItemOption, MenuItemOffer, FeeType, FeeTypeEnum, RestaurantType } from './owg-inventory'; const restaurant: Restaurant = { "@id": "McDonalds", "@type": RestaurantType.Restaurant, "addressCountry": "US", "addressLocality": "123 Local", "addressRegion": "Region", "name": "MacDonald's", "postalCode": "1234", "streetAddress": "123", "telephone": "+15552999983", "url": "https://example.com", "dateModified": new Date() } const fee: Fee = { "@id": "123", "@type": FeeTypeEnum.Fee, "priceCurrency": "US", "serviceId": "123", "feeType": FeeType.Delivery, "dateModified": new Date() } const restaurantJson: string = Convert.restaurantToJson(restaurant); const feeJson: string = Convert.feeToJson(fee);
Java
- Siparişin Uçtan Uca veri feed'leri için istemci kaynak kodu oluşturun.
quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
- Sağlama API'si için istemci kaynak kodu oluşturun.
quicktype --lang java --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.fulfillment
- Gerçek zamanlı güncellemeler API'si için istemci kaynak kodu oluşturun.
quicktype --lang java --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.realtime
- Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.
Kullanım ve doğrulama
Öğe oluşturma ve bunları JSON'a dönüştürme örneği:
package com.example; import com.example.inventory.Converter; import com.example.inventory.Fee; import com.example.inventory.FeeType; import com.example.inventory.Restaurant; import com.example.inventory.RestaurantType; public class FoodOrderingResponse { public static void main(String[] args) { Restaurant restaurant = new Restaurant(); restaurant.setId("MacDonalds"); restaurant.setType(RestaurantType.RESTAURANT); restaurant.setAddressCountry("US"); restaurant.setAddressLocality("123 Local"); restaurant.setAddressRegion("Region"); restaurant.setName("MacDonald's"); restaurant.setPostalCode("1234"); restaurant.setStreetAddress("123"); restaurant.setTelephone("+15552999983"); restaurant.setUrl("https://example.com"); restaurant.setDateModified("2022-09-19T13:10:00.000Z"); Fee fee = new Fee(); fee.setId("123"); fee.setType(FeeTypeEnum.FEE); fee.setPriceCurrency("US"); fee.setServiceId("123"); fee.setFeeType(FeeType.DELIVERY); fee.setDateModified("2022-09-19T13:13:10.000Z"); String restaurantJson = Converter.RestaurantToJsonString(restaurant); String feeJson = Converter.FeeToJsonString(fee); } }
JavaScript
- Siparişin Uçtan Uca veri feed'leri için istemci kaynak kodu oluşturun.
quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
- Sağlama API'si için istemci kaynak kodu oluşturun.
quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
- Gerçek zamanlı güncellemeler API'si için istemci kaynak kodu oluşturun.
quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
- Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.
Kullanım ve doğrulama
Öğe oluşturma ve bunları JSON'a dönüştürme örneği:
// Converts JSON strings to/from your types // and asserts the results of JSON.parse at runtime const Convert = require("./owg-inventory"); const restaurantJson = Convert.restaurantToJson({ "@id": "McDonalds", "@type": 'Restaurant', "addressCountry": "US", "addressLocality": "123 Local", "addressRegion": "Region", "name": "MacDonald's", "postalCode": "1234", "streetAddress": "123", "telephone": "+15552999983", "url": "https://example.com", "dateModified": new Date() })); const restaurant = Convert.toRestaurant(restaurantJson);
Python
- Siparişin Uçtan Uca veri feed'leri için istemci kaynak kodu oluşturun.
quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
- Sağlama API'si için istemci kaynak kodu oluşturun.
quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
- Gerçek zamanlı güncellemeler API'si için istemci kaynak kodu oluşturun.
quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
- Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.
Kullanım
Öğe oluşturma ve bunları JSON'a dönüştürme örneği:
import json import owg_inventory restaurant: owg_inventory.Restaurant = owg_inventory.restaurant_from_dict({ "@id": "McDonalds", "@type": "Restaurant", "addressCountry": "US", "addressLocality": "123 Local", "addressRegion": "Region", "name": "MacDonald's", "postalCode": "1234", "streetAddress": "123", "telephone": "+15552999983", "url": "https://example.com", "dateModified": "2022-09-19T13:10:00.000Z" }) restaurant_json: str = json.dumps(owg_inventory.restaurant_to_dict(restaurant))