Générer des bibliothèques clientes

Version exploitable par un ordinateur du flux de données de bout en bout concernant les commandes Les définitions de l'API sont mises à disposition pour générer le code source du client et valider le la structure des données JSON. Vous pouvez ainsi consacrer plus de temps au développement les capacités d'application et la logique métier requises pour l'intégration.

Dans cet exemple, nous utilisons quicktype. CLI pour générer une bibliothèque cliente facile à utiliser.

Télécharger les schémas JSON

Ces versions lisibles par un ordinateur des flux de données et des API sont nécessaires pour la génération et la validation du code.

Générer des codes

Quicktype peut être utilisé pour regénérer les codes lorsque les API sont modifiées, ce qui vous permet il vous suffit de mettre à jour le code de l'application concernée. QuickType est compatible avec C++, Java, JavaScript, Python et d'autres langages de programmation.

Vous pouvez également utiliser d'autres outils de génération de code disponibles qui prennent en charge le schéma JSON. des définitions de ressources pour générer les bibliothèques clientes.

Utiliser le gestionnaire de packages Node (npm) pour installer Quicktype dans le répertoire du projet pour l'intégration de bout en bout des commandes.

npm install quicktype

TypeScript

  1. Générez le code source du client pour la commande de flux de données de bout en bout.
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
            
  2. Générez le code source du client pour l'API de fulfillment.
    quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
            
  3. Générez le code source du client pour l'API Realtime Updates.
    quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
            
  4. Copiez les fichiers générés dans votre espace de travail et implémentez votre logique métier.

Utilisation et validation

Exemple de création d'entités et de conversion au format 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. Générez le code source du client pour la commande de flux de données de bout en bout.
    quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
            
  2. Générez le code source du client pour l'API de 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. Générez le code source du client pour l'API Realtime 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. Copiez les fichiers générés dans votre espace de travail et implémentez votre logique métier.

Utilisation et validation

Exemple de création d'entités et de conversion au format 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. Générez le code source du client pour la commande de flux de données de bout en bout.
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
            
  2. Générez le code source du client pour l'API de fulfillment.
    quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
            
  3. Générez le code source du client pour l'API Realtime Updates.
    quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
            
  4. Copiez les fichiers générés dans votre espace de travail et implémentez votre logique métier.

Utilisation et validation

Exemple de création d'entités et de conversion au format 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. Générez le code source du client pour la commande de flux de données de bout en bout.
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
            
  2. Générez le code source du client pour l'API de fulfillment.
    quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
            
  3. Générez le code source du client pour l'API Realtime Updates.
    quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
            
  4. Copiez les fichiers générés dans votre espace de travail et implémentez votre logique métier.

Utilisation

Exemple de création d'entités et de conversion au format 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))