إنشاء مكتبات البرامج

تتوفّر نسخة قابلة للقراءة آليًا من خلاصة بيانات "الطلب من البداية إلى النهاية" وتعريفات واجهة برمجة التطبيقات للتوفّر لإنشاء رمز المصدر للعميل والتحقّق من بنية بيانات JSON. يتيح لك ذلك قضاء المزيد من الوقت في تطوير إمكانات التطبيق ومنطق النشاط التجاري المطلوبَين لعملية الدمج.

في هذا المثال، نستخدم quicktype CLI لإنشاء مكتبة عملاء سهلة الاستخدام.

تنزيل مخطّطات JSON

ويجب استخدام هذه النُسخ القابلة للقراءة آليًا من خلاصات البيانات وواجهات برمجة التطبيقات لإنشاء الرموز البرمجية والتحقّق من صحتها.

إنشاء الرموز

يمكن استخدام Quicktype لإعادة إنشاء الرموز عند تغيير واجهات برمجة التطبيقات حتى تتمكّن من تعديل رمز التطبيق المتأثر بسهولة. تتوافق ميزة QuickType مع لغة C++‎ وJava وJavaScript وPython وغيرها من لغات البرمجة.

يمكنك أيضًا استخدام أدوات أخرى متاحة لإنشاء الرموز البرمجية تتوافق مع تعريفات مخطّط JSON لإنشاء مكتبات العملاء.

استخدِم مدير حِزم Node (npm) لتثبيت quicktype في دليل المشروع لدمج ميزة "طلب الطعام" من البداية إلى النهاية.

npm install quicktype

TypeScript

  1. أنشئ رمز المصدر للعميل لخلاصات بيانات "الطلب من البداية إلى النهاية".
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
            
  2. أنشئ رمز المصدر الخاص بالبرنامج للعميل في Fulfillment API.
    quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
            
  3. أنشئ رمز المصدر الخاص بالبرنامج للعميل لواجهة برمجة التطبيقات الخاصة بالتعديلات في الوقت الفعلي.
    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);
    

Java

  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. أنشئ رمز المصدر الخاص بالبرنامج للعميل في Fulfillment 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. أنشئ رمز المصدر الخاص بالبرنامج للعميل لواجهة برمجة التطبيقات الخاصة بالتعديلات في الوقت الفعلي.
    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);
    }
}
    

JavaScript

  1. أنشئ رمز المصدر للعميل لخلاصات بيانات مسار الطلبات من البداية إلى النهاية.
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
            
  2. أنشئ رمز المصدر الخاص بالبرنامج للعميل في Fulfillment API.
    quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
            
  3. أنشئ رمز المصدر الخاص بالبرنامج للعميل لواجهة برمجة التطبيقات الخاصة بالتعديلات في الوقت الفعلي.
    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);

    

Python

  1. أنشئ رمز المصدر للعميل لخلاصات بيانات "الطلب من البداية إلى النهاية".
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
            
  2. أنشئ رمز المصدر الخاص بالبرنامج للعميل في Fulfillment API.
    quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
            
  3. أنشئ رمز المصدر الخاص بالبرنامج للعميل لواجهة برمجة التطبيقات الخاصة بالتعديلات في الوقت الفعلي.
    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))