Genera librerie client

Una versione leggibile dalla macchina del feed di dati end-to-end per l'ordine e l'evasione dell'ordine Le definizioni delle API vengono rese disponibili per generare il codice sorgente del cliente e convalidare dei dati JSON. Ciò consente di dedicare più tempo allo sviluppo le capacità dell'applicazione e la logica di business richieste per l'integrazione.

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

Scarica gli schemi JSON

Queste versioni leggibili dalle macchine dei feed di dati e delle 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 basta 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 lo 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 degli ordini.

npm install quicktype

TypeScript

  1. Genera il codice sorgente del cliente per i feed di dati end-to-end degli ordini.
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
            
  2. Genera il codice sorgente del cliente 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 Real-Time Updates.
    quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
            
  4. Copia i file generati nell'area di lavoro e implementa la logica di business.

Utilizzo e convalida

Esempio di creazione di entità e di 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 degli ordini.
    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 cliente 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 Real-Time Updates.
    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 nell'area di lavoro e implementa la logica di business.

Utilizzo e convalida

Esempio di creazione di entità e di 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 degli ordini.
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
            
  2. Genera il codice sorgente del cliente 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 Real-Time Updates.
    quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
            
  4. Copia i file generati nell'area di lavoro e implementa la logica di business.

Utilizzo e convalida

Esempio di creazione di entità e di 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 degli ordini.
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
            
  2. Genera il codice sorgente del cliente 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 Real-Time Updates.
    quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
            
  4. Copia i file generati nell'area di lavoro e implementa la logica di business.

Utilizzo

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