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

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

في هذا المثال، نستخدم quicktype. واجهة سطر الأوامر لإنشاء مكتبة عملاء سهلة الاستخدام.

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

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

إنشاء رموز برمجية

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

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

استخدِم مدير حزم العُقد (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))