Se pone a disposición una versión legible por máquinas del feed de datos de extremo a extremo de pedidos y las definiciones de la API de entrega para generar código fuente del cliente y validar la estructura de los datos JSON. Esto te permite dedicar más tiempo a desarrollar las capacidades de la aplicación y la lógica empresarial necesarias para la integración.
En este ejemplo, usamos la CLI de quicktype para generar una biblioteca cliente fácil de usar.
Descarga los esquemas JSON
Estas versiones de feeds de datos y APIs legibles por máquinas son necesarias para la generación y validación de código.
- Ordenación de feeds de datos de extremo a extremo
- API de confirmación de la compra y envío de pedidos
- Actualizaciones en tiempo real
Generar códigos
Quicktype se puede usar para volver a generar códigos cuando se cambian las APIs, de modo que puedas solo actualizar el código de la aplicación afectado. QuickType admite C++, Java, JavaScript, Python y otros lenguajes de programación.
También puedes usar otras herramientas de generador de código disponibles que admitan definiciones de esquemas JSON para generar las bibliotecas cliente.
Usa el administrador de paquetes de Node (npm) para instalar quicktype en el directorio del proyecto para tu integración de extremo a extremo de pedidos.
npm install quicktype
TypeScript
- Genera código fuente de cliente para los feeds de datos de extremo a extremo de pedidos.
quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
- Genera el 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
- Genera el 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
- 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
- Genera código fuente de cliente para los feeds de datos de extremo a extremo de pedidos.
quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
- Genera el 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
- Genera el 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
- 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
- Genera código fuente de cliente para los feeds de datos de extremo a extremo de pedidos.
quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
- Genera el 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
- Genera el 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
- 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
- Genera código fuente de cliente para los feeds de datos de extremo a extremo de pedidos.
quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
- Genera el 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
- Genera el 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
- 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))