ایجاد کتابخانه های مشتری

یک نسخه قابل خواندن ماشینی از Ordering End-to-End داده فید و تعاریف تکمیل API برای تولید کد منبع مشتری و اعتبارسنجی ساختار داده های JSON در دسترس است. این به شما امکان می دهد زمان بیشتری را صرف توسعه قابلیت های برنامه و منطق تجاری مورد نیاز برای ادغام کنید.

در این مثال، ما از Quicktype CLI برای ایجاد یک کتابخانه مشتری با استفاده آسان استفاده می کنیم.

طرحواره های JSON را دانلود کنید

این نسخه‌های قابل خواندن توسط ماشین از فیدهای داده و APIها برای تولید کد و اعتبارسنجی مورد نیاز هستند.

کدها را تولید کنید

از Quicktype می‌توان برای بازآفرینی کدها هنگام تغییر APIها استفاده کرد، بنابراین می‌توانید به سادگی کد برنامه آسیب‌دیده را به‌روزرسانی کنید. QuickType از C++، Java، JavaScript، Python و سایر زبان های برنامه نویسی پشتیبانی می کند.

همچنین می توانید از دیگر ابزارهای تولید کننده کد موجود که از تعاریف JSON Schema پشتیبانی می کنند برای تولید کتابخانه های سرویس گیرنده استفاده کنید.

از Node Package Manager (npm) برای نصب Quicktype در فهرست پروژه برای ادغام Ordering End-to-End خود استفاده کنید.

npm install quicktype

TypeScript

  1. کد منبع سرویس گیرنده را برای سفارش فیدهای داده پایان به انتها ایجاد کنید.
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
            
  2. کد منبع مشتری برای API تکمیلی ایجاد کنید.
    quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
            
  3. کد منبع کلاینت را برای API به‌روزرسانی‌های هم‌زمان ایجاد کنید.
    quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
            
  4. فایل های تولید شده را در فضای کاری خود کپی کنید و منطق کسب و کار خود را پیاده سازی کنید.

استفاده و اعتبار سنجی

نمونه ای از ایجاد موجودیت ها و تبدیل آنها به JSON:

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);
    

جاوا

  1. کد منبع سرویس گیرنده را برای سفارش فیدهای داده پایان به انتها ایجاد کنید.
    quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
            
  2. کد منبع مشتری برای API تکمیلی ایجاد کنید.
    quicktype --lang java --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.fulfillment
            
  3. کد منبع کلاینت را برای API به‌روزرسانی‌های هم‌زمان ایجاد کنید.
    quicktype --lang java --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.realtime
            
  4. فایل های تولید شده را در فضای کاری خود کپی کنید و منطق کسب و کار خود را پیاده سازی کنید.

استفاده و اعتبار سنجی

نمونه ای از ایجاد موجودیت ها و تبدیل آنها به JSON:

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);
    }
}
    

جاوا اسکریپت

  1. کد منبع سرویس گیرنده را برای سفارش فیدهای داده پایان به انتها ایجاد کنید.
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
            
  2. کد منبع مشتری برای API تکمیلی ایجاد کنید.
    quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
            
  3. کد منبع کلاینت را برای API به‌روزرسانی‌های هم‌زمان ایجاد کنید.
    quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
            
  4. فایل های تولید شده را در فضای کاری خود کپی کنید و منطق کسب و کار خود را پیاده سازی کنید.

استفاده و اعتبار سنجی

نمونه ای از ایجاد موجودیت ها و تبدیل آنها به JSON:

// 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);

    

پایتون

  1. کد منبع سرویس گیرنده را برای سفارش فیدهای داده پایان به انتها ایجاد کنید.
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
            
  2. کد منبع مشتری برای API تکمیلی ایجاد کنید.
    quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
            
  3. کد منبع کلاینت را برای API به‌روزرسانی‌های هم‌زمان ایجاد کنید.
    quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
            
  4. فایل های تولید شده را در فضای کاری خود کپی کنید و منطق کسب و کار خود را پیاده سازی کنید.

استفاده

نمونه ای از ایجاد موجودیت ها و تبدیل آنها به JSON:

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))