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.
- Cómo pedir feeds de datos de extremo a extremo
- API de Checkout y Submit Order
- Actualizaciones en tiempo real
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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))