Genera librerie client

Per generare il codice sorgente del client e convalidare la struttura dei dati JSON, è disponibile una versione leggibile dalle macchine del feed di dati end-to-end di ordinazione e le definizioni dell'API di fulfillment. In questo modo puoi dedicare più tempo allo sviluppo delle funzionalità delle applicazioni e della logica di business necessaria per l'integrazione.

In questo esempio, utilizziamo l'interfaccia a riga di comando quicktype per generare una libreria client facile da usare.

Scarica gli schemi JSON

Queste versioni leggibili dai feed di dati e dalle API sono necessarie per la generazione e la convalida del codice.

Genera codici

Quicktype può essere utilizzato per rigenerare i codici quando le API vengono modificate, in modo da poter semplicemente aggiornare il codice dell'applicazione interessata. QuickType supporta C++, Java, JavaScript, Python e altri linguaggi di programmazione.

Puoi anche utilizzare altri strumenti di generazione di codice disponibili che supportano le definizioni di schema JSON per generare le librerie client.

Utilizza il gestore di pacchetti dei nodi (npm) per installare quicktype nella directory del progetto per l'integrazione end-to-end di ordinazione.

npm install quicktype

TypeScript

  1. Genera il codice sorgente del cliente per i feed di dati end-to-end di ordine.
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
            
  2. Genera il codice sorgente del client per l'API fulfillment.
    quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
            
  3. Genera il codice sorgente del client per l'API degli aggiornamenti in tempo reale.
    quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
            
  4. Copia i file generati nella tua area di lavoro e implementa la logica di business.

Utilizzo e convalida

Esempio di creazione di entità e conversione in 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. Genera il codice sorgente del cliente per i feed di dati end-to-end di ordine.
    quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
            
  2. Genera il codice sorgente del client per l'API fulfillment.
    quicktype --lang java --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.fulfillment
            
  3. Genera il codice sorgente del client per l'API degli aggiornamenti in tempo reale.
    quicktype --lang java --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.realtime
            
  4. Copia i file generati nella tua area di lavoro e implementa la logica di business.

Utilizzo e convalida

Esempio di creazione di entità e conversione in 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. Genera il codice sorgente del cliente per i feed di dati end-to-end di ordine.
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
            
  2. Genera il codice sorgente del client per l'API fulfillment.
    quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
            
  3. Genera il codice sorgente del client per l'API degli aggiornamenti in tempo reale.
    quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
            
  4. Copia i file generati nella tua area di lavoro e implementa la logica di business.

Utilizzo e convalida

Esempio di creazione di entità e conversione in 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. Genera il codice sorgente del cliente per i feed di dati end-to-end di ordine.
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
            
  2. Genera il codice sorgente del client per l'API fulfillment.
    quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
            
  3. Genera il codice sorgente del client per l'API degli aggiornamenti in tempo reale.
    quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
            
  4. Copia i file generati nella tua area di lavoro e implementa la logica di business.

Utilizzo

Esempio di creazione di entità e conversione in 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))