יצירה של ספריות לקוח

גרסת קובץ JSON קריא למחשבים של הגדרות ה-API של הטיפול בהזמנות ופיד הנתונים של תהליך ההזמנה מקצה לקצה זמינות ליצירת קוד מקור של לקוח ולאימות המבנה של נתוני ה-JSON. כך תוכלו להשקיע יותר זמן בפיתוח יכולות האפליקציה והלוגיקה העסקית הנדרשות לשילוב.

בדוגמה הזו אנחנו משתמשים ב-CLI של quicktype כדי ליצור ספריית לקוח נוחה לשימוש.

הורדת סכימות ה-JSON

הגרסאות האלה של פידים של נתונים ו-API שניתנים לקריאה במכונה נדרשות ליצירה ולאימות של קוד.

יצירת קודים

אפשר להשתמש ב-Quicktype כדי ליצור מחדש קודים כשממשקי ה-API משתנים, וכך לעדכן בקלות את קוד האפליקציה המושפע. התכונה QuickType תומכת בשפות תכנות כמו C++‎,‏ Java‏, JavaScript‏, Python ועוד.

אפשר גם להשתמש בכלים אחרים ליצירת קוד שתומכים בהגדרות של JSON Schema כדי ליצור את ספריות הלקוח.

משתמשים ב-Node package manager (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. יצירת קוד מקור של לקוח ל-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);
    

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. יצירת קוד מקור של לקוח ל-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);
    }
}
    

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. יצירת קוד מקור של לקוח ל-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);

    

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. יצירת קוד מקור של לקוח ל-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))