Genera bibliotecas cliente

Se pone a disposición una versión procesable del feed de datos de extremo a extremo de los pedidos y las definiciones de la API de entrega para generar el código fuente del cliente y validar la estructura de los datos JSON. Esto te permite dedicar más tiempo al desarrollo de las capacidades de la aplicación y la lógica empresarial requerida para la integración.

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

Descarga los esquemas de JSON

Estas versiones de las APIs y los feeds de datos procesables 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 simplemente actualizar el código de la aplicación afectado. QuickType es compatible con C++, Java, JavaScript, Python y otros lenguajes de programación.

También puedes usar otras herramientas de generación de código disponibles que sean compatibles con las definiciones del esquema JSON para generar las bibliotecas cliente.

Usa el administrador de paquetes de Node (npm) para instalar Quicktype en el directorio del proyecto de tu integración de pedido de extremo a extremo.

npm install quicktype

TypeScript

  1. Generar el 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 el código fuente del cliente para la API de entregas
    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 cómo crear entidades y convertirlas 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 el 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 el código fuente del cliente para la API de entregas
    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 cómo crear entidades y convertirlas 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 el 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 el código fuente del cliente para la API de entregas
    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 cómo crear entidades y convertirlas 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 el 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 el código fuente del cliente para la API de entregas
    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 cómo crear entidades y convertirlas 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))