เลือกอุปกรณ์ปลายทาง

Route Optimization API มีปลายทางต่อไปนี้

  • OptimizeTours: ปลายทางการบล็อกสำหรับคำขอเดียว
  • OptimizeToursLongRunning: ปลายทางที่ไม่บล็อก สำหรับคำขอเดียวที่มีเวลาในการแก้ปัญหานาน
  • OptimizeToursUri: จุดสิ้นสุดที่ไม่บล็อกสำหรับคำขอเดียว ที่มีข้อกำหนดด้านข้อมูลจำนวนมาก
  • BatchOptimizeTours: ปลายทางที่ไม่บล็อกสำหรับ คำขอหลายรายการที่ประมวลผลพร้อมกัน

ปลายทางที่คุณเลือกจะขึ้นอยู่กับกรณีการใช้งาน ขนาดคำขอ เวลาในการแก้ปัญหาที่คาดไว้ และความจำเป็นในการประมวลผลคำขอหลายรายการพร้อมกัน

เปรียบเทียบอุปกรณ์ปลายทาง

ใช้ตารางต่อไปนี้เพื่อระบุปลายทางที่เหมาะสมกับความต้องการของคุณ

ปลายทาง OptimizeTours OptimizeToursLongRunning OptimizeToursUri BatchOptimizeTours
ประเภทการดำเนินการ จะมีการบล็อก ไม่บล็อก ไม่บล็อก ไม่บล็อก
คำขอที่ดำเนินการแล้ว โสด โสด โสด หลายรายการ
ขนาดคำขอสูงสุด เล็ก ปานกลาง ใหญ่ ใหญ่
เวลาในการแก้ปัญหา สั้น ยาว ยาว ยาว
ต้องใช้ Google Cloud Storage ไม่ ไม่ได้ ได้ ใช่

ทำความเข้าใจลักษณะของอุปกรณ์ปลายทาง

ตารางก่อนหน้าแสดงลักษณะต่อไปนี้เพื่อช่วยคุณเลือกปลายทางที่เหมาะสม

  • ประเภทการดำเนินการ: กำหนดวิธีที่แอปพลิเคชัน จัดการการเชื่อมต่อเครือข่ายขณะรอการตอบกลับ โดยมี 2 ประเภท ดังนี้
    • การบล็อกปลายทาง: เปิดการเชื่อมต่อไว้จนกว่า API จะส่งการตอบกลับ
    • ปลายทางที่ไม่บล็อก: ประมวลผลคำขอในเบื้องหลัง API จะแสดงรหัสการดำเนินการที่ใช้เวลานาน (LRO) ทันที ซึ่งคุณจะสำรวจในภายหลังเพื่อดึงข้อมูลผลลัพธ์
  • คำขอที่ประมวลผลแล้ว: กำหนดว่าปลายทางจะจัดการคำขอการกำหนดเส้นทางเดียวหรือประมวลผลคำขอหลายรายการพร้อมกัน
  • ขนาดคำขอสูงสุด: คำขอขนาดเล็กและขนาดกลางจะส่งแบบอินไลน์โดยตรง และมีขีดจำกัดฝั่งเซิร์ฟเวอร์ คำขอขนาดใหญ่จะข้ามขีดจำกัดเหล่านี้ได้โดยใช้ Google Cloud Storage ดูขีดจำกัดขนาดคำขอที่แน่นอนได้ในส่วนรายละเอียดของปลายทาง
  • เวลาในการแก้ไข: คำขอที่ง่ายจะแก้ไขได้ในเวลาอันสั้น ส่วนคำขอที่ซับซ้อนจะใช้เวลาในการแก้ไขนานกว่า เนื่องจากเวลาในการแก้ปัญหาเป็นตัวกำหนดระยะเวลาที่การเชื่อมต่อต้องเปิดอยู่ การเลือกปลายทางจึงขึ้นอยู่กับขีดจำกัดการหมดเวลา ดูข้อมูลเพิ่มเติมได้ที่กำหนดค่าการหมดเวลาและ กำหนดเวลา
  • ต้องใช้ Google Cloud Storage: ปลายทางที่ประมวลผลคำขอและคำตอบขนาดใหญ่จะอ่านและเขียนข้อมูลไปยัง Google Cloud Storage โดยตรง แทนที่จะส่งข้อมูลในคำขอ HTTP คุณจะอัปโหลดคำขอไปยังที่เก็บข้อมูล Cloud Storage และส่ง URI ไปยัง API

รายละเอียดปลายทาง

Route Optimization API มีปลายทาง 4 รายการ ส่วนต่อไปนี้จะอธิบาย วิธีการทำงานของแต่ละปลายทางและมีคำขอตัวอย่าง

OptimizeTours

OptimizeTours คือปลายทางการบล็อกที่ออกแบบมาสำหรับคำขอเดียว ซึ่งมีเวลาในการแก้ไขสั้นๆ โดยจะแสดงเส้นทางที่เพิ่มประสิทธิภาพแล้วในคำตอบโดยตรง เนื่องจากเป็นปลายทางที่บล็อก คุณต้องเปิดการเชื่อมต่อเครือข่ายไว้ จนกว่า API จะประมวลผลคำขอเสร็จสิ้นเพื่อที่จะแสดงการตอบกลับ ปลายทางนี้ ยอมรับคำขอแบบอินไลน์ได้สูงสุดประมาณ 4 MB

ดูOptimizeToursตัวอย่างคำขอ

{
  "model": {
    "shipments":[
      {
        "pickups":[
          {
            "arrivalLocation": {
              "latitude": 37.425062,
              "longitude": -122.095355
            }
          }
        ],
        "deliveries":[
          {
            "arrivalLocation": {
              "latitude": 37.424215,
              "longitude": -122.095260
            }
          }
        ]
      }
    ],
    "vehicles":[
      {
        "travelMode": "DRIVING",
        "costPerKilometer": 1.0
      }
    ]
  }
}
    

OptimizeToursLongRunning

OptimizeToursLongRunning เป็นปลายทางที่ไม่บล็อกสำหรับคำขอเดียว ที่มีเวลาในการแก้ปัญหานาน โดยจะแสดงผลรหัสการดำเนินการที่ใช้เวลานาน (LRO) คุณสามารถสำรวจรหัสนี้โดยใช้ปลายทาง GetOperation เพื่อตรวจสอบสถานะคำขอ และเรียกเส้นทางที่เพิ่มประสิทธิภาพสุดท้าย ปลายทางนี้ยอมรับคำขอแบบอินไลน์ ที่มีขนาดสูงสุดประมาณ 8 MB

ดูOptimizeToursLongRunningตัวอย่างคำขอ

{
  "model": {
    "shipments":[
      {
        "pickups":[
          {
            "arrivalLocation": {
              "latitude": 37.425062,
              "longitude": -122.095355
            }
          }
        ]
      }
    ],
    "vehicles":[
      {
        "travelMode": "DRIVING",
        "costPerKilometer": 1.0
      }
    ]
  }
}
    

OptimizeToursUri

OptimizeToursUri เป็นปลายทางที่ไม่บล็อกซึ่งออกแบบมาสำหรับคำขอเดียว ที่มีเวลาในการแก้ปัญหานานและมีข้อกำหนดด้านข้อมูลขนาดใหญ่ (มากกว่า 8 MB) โดยจะ แสดงรหัสการดำเนินการที่ใช้เวลานาน (LRO) คุณสามารถสำรวจรหัสนี้โดยใช้ GetOperationปลายทางเพื่อตรวจสอบสถานะคำขอ

คุณจะอัปโหลด OptimizeToursRequest ไปยัง Google Cloud Storage แทนการส่งเพย์โหลดแบบอินไลน์ จากนั้นส่ง URI ของ Cloud Storage สำหรับทั้งคำขออินพุตและปลายทางเอาต์พุตไปยัง API เซิร์ฟเวอร์จะอ่านข้อมูลจาก URI อินพุตและเขียนข้อมูลสุดท้ายOptimizeToursResponseโดยตรง ไปยัง URI เอาต์พุต คุณอ่านเส้นทางที่เพิ่มประสิทธิภาพจาก URI เอาต์พุตนี้ได้เมื่อการดำเนินการเสร็จสมบูรณ์

ดูOptimizeToursUriตัวอย่างคำขอ

{
  "input": {
    "uri": "gs://your-bucket/path/input/object.json"
  },
  "output": {
    "uri": "gs://your-bucket/path/output/object.json"
  }
}
    

BatchOptimizeTours

BatchOptimizeTours คือปลายทางที่ไม่บล็อกซึ่งมีไว้สำหรับคำขอการเพิ่มประสิทธิภาพหลายรายการที่แยกกันซึ่งประมวลผลพร้อมกัน โดยจะ แสดงรหัสการดำเนินการที่ใช้เวลานาน (LRO) คุณสามารถสำรวจรหัสนี้โดยใช้ GetOperation เพื่อตรวจสอบสถานะคำขอและเรียกเส้นทางที่ ปรับให้เหมาะสมแล้วขั้นสุดท้าย

คุณจะอัปโหลดเพย์โหลดหลายรายการ OptimizeToursRequestไปยัง Google Cloud Storage แทนการส่งเพย์โหลดแบบอินไลน์ จากนั้นส่ง URI ของ Cloud Storage ไปยัง API เซิร์ฟเวอร์จะอ่านข้อมูลจาก URI อินพุตและเขียนOptimizeToursResponseสำหรับแต่ละคำขอไปยัง URI เอาต์พุตโดยตรง

ดูBatchOptimizeToursตัวอย่างคำขอ

{
  "modelConfigs": [
    {
      "inputConfig": {
        "gcsSource": {
          "uri": "gs://your-bucket/path/input/request_1.json"
        },
        "dataFormat": "JSON"
      },
      "outputConfig": {
        "gcsDestination": {
          "uri": "gs://your-bucket/path/output/response_1.json"
        },
        "dataFormat": "JSON"
      }
    },
    {
      "inputConfig": {
        "gcsSource": {
          "uri": "gs://your-bucket/path/input/request_2.json"
        },
        "dataFormat": "JSON"
      },
      "outputConfig": {
        "gcsDestination": {
          "uri": "gs://your-bucket/path/output/response_2.json"
        },
        "dataFormat": "JSON"
      }
    }
  ]
}