Создание клиентских библиотек

Машиночитаемая версия сквозного потока данных заказа и определения API выполнения доступны для генерации исходного кода клиента и проверки структуры данных JSON. Это позволяет вам уделять больше времени разработке возможностей приложения и бизнес-логики, необходимой для интеграции.

В этом примере мы используем интерфейс командной строки QuickType для создания простой в использовании клиентской библиотеки.

Загрузите схемы JSON

Эти машиночитаемые версии каналов данных и API необходимы для генерации и проверки кода.

Генерировать коды

Quicktype можно использовать для повторного создания кодов при изменении API, поэтому вы можете просто обновить затронутый код приложения. QuickType поддерживает C++, Java, JavaScript, Python и другие языки программирования.

Вы также можете использовать другие доступные инструменты генератора кода, поддерживающие определения схемы JSON, для создания клиентских библиотек.

Используйте диспетчер пакетов Node (npm), чтобы установить Quicktype в каталог проекта для сквозной интеграции Ordering.

npm install quicktype
  1. Создайте исходный код клиента для упорядочения сквозных каналов данных.
    quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
           
  2. Создайте исходный код клиента для API выполнения.
    quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
           
  3. Создайте исходный код клиента для API обновлений в реальном времени.
    quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
           
  4. Скопируйте сгенерированные файлы в свое рабочее пространство и реализуйте свою бизнес-логику.

Использование и проверка

Пример создания сущностей и преобразования их в 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);
   
  1. Создайте исходный код клиента для упорядочения сквозных каналов данных.
    quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
           
  2. Создайте исходный код клиента для API выполнения.
    quicktype --lang java --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.fulfillment
           
  3. Создайте исходный код клиента для API обновлений в реальном времени.
    quicktype --lang java --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.realtime
           
  4. Скопируйте сгенерированные файлы в свое рабочее пространство и реализуйте свою бизнес-логику.

Использование и проверка

Пример создания сущностей и преобразования их в 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);
   
}
}
   
  1. Создайте исходный код клиента для упорядочения сквозных каналов данных.
    quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
           
  2. Создайте исходный код клиента для API выполнения.
    quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
           
  3. Создайте исходный код клиента для API обновлений в реальном времени.
    quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
           
  4. Скопируйте сгенерированные файлы в свое рабочее пространство и реализуйте свою бизнес-логику.

Использование и проверка

Пример создания сущностей и преобразования их в 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);

   
  1. Создайте исходный код клиента для упорядочения сквозных каналов данных.
    quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
           
  2. Создайте исходный код клиента для API выполнения.
    quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
           
  3. Создайте исходный код клиента для API обновлений в реальном времени.
    quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
           
  4. Скопируйте сгенерированные файлы в свое рабочее пространство и реализуйте свою бизнес-логику.

Использование

Пример создания сущностей и преобразования их в 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))