Genera bibliotecas cliente

Es una versión legible por máquina del feed de datos de extremo a extremo de pedidos y de entrega Las definiciones de la API se ponen a disposición para generar el código fuente del cliente y validar el de los datos JSON. Esto te permite dedicar más tiempo al desarrollo y la lógica empresarial necesarias para la integración.

En este ejemplo, usamos quicktype CLI para generar una biblioteca cliente fácil de usar.

Descarga los esquemas de JSON

Estas versiones de las APIs y los feeds de datos legibles por máquina son necesarias para la generación y validación de código.

Generar códigos

Quicktype se puede utilizar para regenerar códigos cuando se cambian las APIs, de modo que puedas solo debes actualizar el código de la aplicación afectada. QuickType admite C++, Java, JavaScript, Python y otros lenguajes de programación.

También puedes usar otras herramientas de generación de código disponibles que admitan el esquema JSON definiciones para generar las bibliotecas cliente.

Usa el Administrador de paquetes de Node (npm) para instalar QuickType en el directorio del proyecto para la integración de Pedidos de extremo a extremo.

npm install quicktype

TypeScript

  1. Generar código fuente del cliente para hacer pedidos de feeds de datos de extremo a extremo
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
            
  2. Generar código fuente del cliente para la API de entrega
    quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
            
  3. Generar código fuente del cliente para la API de actualizaciones en tiempo real
    quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
            
  4. Copia los archivos generados en tu lugar de trabajo y, luego, implementa tu lógica empresarial.

Uso y validación

Ejemplo de creación de entidades y conversión a 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. Generar código fuente del cliente para hacer pedidos de feeds de datos de extremo a extremo
    quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
            
  2. Generar código fuente del cliente para la API de entrega
    quicktype --lang java --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.fulfillment
            
  3. Generar código fuente del cliente para la API de actualizaciones en tiempo real
    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 los archivos generados en tu lugar de trabajo y, luego, implementa tu lógica empresarial.

Uso y validación

Ejemplo de creación de entidades y conversión a 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. Generar código fuente del cliente para hacer pedidos de feeds de datos de extremo a extremo
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
            
  2. Generar código fuente del cliente para la API de entrega
    quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
            
  3. Generar código fuente del cliente para la API de actualizaciones en tiempo real
    quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
            
  4. Copia los archivos generados en tu lugar de trabajo y, luego, implementa tu lógica empresarial.

Uso y validación

Ejemplo de creación de entidades y conversión a 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. Generar código fuente del cliente para hacer pedidos de feeds de datos de extremo a extremo
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
            
  2. Generar código fuente del cliente para la API de entrega
    quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
            
  3. Generar código fuente del cliente para la API de actualizaciones en tiempo real
    quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
            
  4. Copia los archivos generados en tu lugar de trabajo y, luego, implementa tu lógica empresarial.

Uso

Ejemplo de creación de entidades y conversión a 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))