ฟีดข้อมูลและการดำเนินการตามคำสั่งซื้อเวอร์ชันที่เครื่องอ่านได้ คำจำกัดความของ API พร้อมใช้งานเพื่อสร้างซอร์สโค้ดของไคลเอ็นต์และตรวจสอบความถูกต้องของ โครงสร้างข้อมูล JSON ทำให้คุณใช้เวลาในการพัฒนา ความสามารถของแอปพลิเคชันและตรรกะทางธุรกิจที่จำเป็นสำหรับการผสานรวม
ในตัวอย่างนี้ เราใช้ quicktype CLI เพื่อสร้างไลบรารีของไคลเอ็นต์ที่ใช้งานง่าย
ดาวน์โหลดสคีมา JSON
ซึ่งจำเป็นต้องใช้ฟีดข้อมูลและ API เวอร์ชันที่เครื่องอ่านได้เหล่านี้สำหรับการสร้างและตรวจสอบโค้ด
สร้างรหัส
Quicktype สามารถใช้ในการสร้างโค้ดใหม่เมื่อ API มีการเปลี่ยนแปลง เพื่อให้คุณสามารถ เพียงอัปเดตโค้ดของแอปพลิเคชันที่ได้รับผลกระทบ QuickType รองรับ C++ Java, JavaScript, Python และภาษาโปรแกรมอื่นๆ
คุณยังใช้เครื่องมือสร้างโค้ดอื่นๆ ที่พร้อมใช้งานซึ่งรองรับสคีมา JSON ได้ด้วย เพื่อสร้างไลบรารีของไคลเอ็นต์
ใช้ตัวจัดการแพ็กเกจโหนด (npm) เพื่อติดตั้ง Quicktype ในไดเรกทอรีโปรเจ็กต์ สำหรับการผสานรวมการสั่งซื้อแบบครบวงจร
npm install quicktype
TypeScript
- สร้างซอร์สโค้ดของลูกค้าสำหรับการสั่งซื้อฟีดข้อมูลจากต้นทางถึงปลายทาง
quicktype --lang typescript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./owg-inventory.ts
- สร้างซอร์สโค้ดไคลเอ็นต์สำหรับ Fulfillment API
quicktype --lang typescript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./owg-fulfillment.ts
- สร้างซอร์สโค้ดของไคลเอ็นต์สำหรับ API การอัปเดตแบบเรียลไทม์
quicktype --lang typescript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./owg-realtime-updates.ts
- คัดลอกไฟล์ที่สร้างขึ้นไปยังพื้นที่ทำงานและนำตรรกะทางธุรกิจไปใช้
การใช้งานและการตรวจสอบ
ตัวอย่างการสร้างเอนทิตีและแปลงเป็น 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
- สร้างซอร์สโค้ดของลูกค้าสำหรับการสั่งซื้อฟีดข้อมูลจากต้นทางถึงปลายทาง
quicktype --lang java --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.inventory
- สร้างซอร์สโค้ดไคลเอ็นต์สำหรับ Fulfillment API
quicktype --lang java --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.fulfillment
- สร้างซอร์สโค้ดของไคลเอ็นต์สำหรับ API การอัปเดตแบบเรียลไทม์
quicktype --lang java --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o ./java/ --no-date-times --package com.example.realtime
- คัดลอกไฟล์ที่สร้างขึ้นไปยังพื้นที่ทำงานและนำตรรกะทางธุรกิจไปใช้
การใช้งานและการตรวจสอบ
ตัวอย่างการสร้างเอนทิตีและแปลงเป็น 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
- สร้างซอร์สโค้ดของลูกค้าสำหรับการสั่งซื้อฟีดข้อมูลจากต้นทางถึงปลายทาง
quicktype --lang javascript --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg-inventory.js
- สร้างซอร์สโค้ดไคลเอ็นต์สำหรับ Fulfillment API
quicktype --lang javascript --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg-fulfillment.js
- สร้างซอร์สโค้ดของไคลเอ็นต์สำหรับ API การอัปเดตแบบเรียลไทม์
quicktype --lang javascript --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg-realtime-updates.js
- คัดลอกไฟล์ที่สร้างขึ้นไปยังพื้นที่ทำงานและนำตรรกะทางธุรกิจไปใช้
การใช้งานและการตรวจสอบ
ตัวอย่างการสร้างเอนทิตีและแปลงเป็น 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
- สร้างซอร์สโค้ดของลูกค้าสำหรับการสั่งซื้อฟีดข้อมูลจากต้นทางถึงปลายทาง
quicktype --lang python --src-lang schema inventory-v2-json-schema.json#top_level_definitions/ -o owg_inventory.py
- สร้างซอร์สโค้ดไคลเอ็นต์สำหรับ Fulfillment API
quicktype --lang python --src-lang schema fulfillment-actions-json-schema.json#top_level_definitions/ -o owg_fulfillment.py
- สร้างซอร์สโค้ดของไคลเอ็นต์สำหรับ API การอัปเดตแบบเรียลไทม์
quicktype --lang python --src-lang schema realtime-updates-json-schema.json#top_level_definitions/ -o owg_realtime_updates.py
- คัดลอกไฟล์ที่สร้างขึ้นไปยังพื้นที่ทำงานและนำตรรกะทางธุรกิจไปใช้
การใช้งาน
ตัวอย่างการสร้างเอนทิตีและแปลงเป็น 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))