İstemci kitaplıkları oluşturma

Siparişler Uçtan Uca veri feed'inin ve sipariş karşılamanın makine tarafından okunabilir bir sürümü API tanımları, istemci kaynak kodu oluşturmak ve yapısı hakkında daha fazla bilgi sahibi olmanızı sağlar. Böylece, ürün geliştirmeye daha fazla zaman ayırabilirsiniz. entegrasyon için gereken uygulama özellikleri ve iş mantığı.

Bu örnekte, quicktype CLI kullanarak kullanımı kolay bir istemci kitaplığı oluşturun.

JSON Schemas'ı 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ştur

API'ler değiştirildiğinde kodları yeniden oluşturmak için Quicktype kullanılabilir. Böylece, etkilenen uygulama kodunu güncellemeniz yeterlidir. QuickType, C++, Java, JavaScript, Python ve diğer programlama dilleri.

JSON Şeması'nı destekleyen diğer kod oluşturma araçlarını da kullanabilirsiniz. tanımlamalarını öğrendiniz.

Düğüm paket yöneticisi'ni kullanma Proje dizinine quicktype'ı yüklemek için (npm) eksiksiz bir dille kontrol edin.

npm install quicktype

TypeScript

  1. Uçtan uca veri feed'leri sıralama 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
            
  2. Karşı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
            
  3. 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
            
  4. Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.

Kullanım ve doğrulama

Varlık 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

  1. Uçtan uca veri feed'leri sıralama 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
            
  2. Karşı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
            
  3. 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
            
  4. Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.

Kullanım ve doğrulama

Varlık 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

  1. Uçtan uca veri feed'leri sıralama 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
            
  2. Karşı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
            
  3. 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
            
  4. Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.

Kullanım ve doğrulama

Varlık 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

  1. Uçtan uca veri feed'leri sıralama 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
            
  2. Karşı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
            
  3. 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
            
  4. Oluşturulan dosyaları çalışma alanınıza kopyalayın ve iş mantığınızı uygulayın.

Kullanım

Varlık 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))