একটি এন্ডপয়েন্ট বেছে নিন

Route Optimization API-তে নিম্নলিখিত এন্ডপয়েন্ট আছে:

  • OptimizeTours: একটি অনুরোধের জন্য ব্লকিং এন্ডপয়েন্ট।
  • OptimizeToursLongRunning: সমাধান করতে অনেক সময় লাগে এমন সিঙ্গেল অনুরোধের জন্য নন-ব্লকিং এন্ডপয়েন্ট।
  • OptimizeToursUri: অনেক ডেটা প্রয়োজন এমন একটি অনুরোধের জন্য নন-ব্লকিং এন্ডপয়েন্ট।
  • BatchOptimizeTours: একাধিক অনুরোধ একসাথে প্রসেস করার জন্য একটি নন-ব্লকিং এন্ডপয়েন্ট।

আপনি যে এন্ডপয়েন্ট বেছে নেবেন তা আপনার ব্যবহারের কেস, অনুরোধের সাইজ, সমাধান করার প্রত্যাশিত সময় এবং আপনাকে একসাথে একাধিক অনুরোধ প্রসেস করতে হবে কিনা তার উপর নির্ভর করে।

এন্ডপয়েন্ট তুলনা করুন

আপনার প্রয়োজন অনুযায়ী সঠিক এন্ডপয়েন্ট শনাক্ত করতে নিম্নলিখিত টেবিল ব্যবহার করুন:

এন্ডপয়েন্ট OptimizeTours OptimizeToursLongRunning OptimizeToursUri BatchOptimizeTours
এক্সিকিউশনের ধরন ব্লকিং নন-ব্লকিং নন-ব্লকিং নন-ব্লকিং
অনুরোধ প্রসেস করা হয়েছে সিঙ্গেল সিঙ্গেল সিঙ্গেল একাধিক
অনুরোধের সর্বাধিক সাইজ ছোট মাঝারি বড় বড়
সমাধানের সময় ছোট দীর্ঘ দীর্ঘ দীর্ঘ
Google Cloud Storage প্রয়োজন না না হ্যাঁ হ্যাঁ

এন্ডপয়েন্টের বৈশিষ্ট্য বোঝা

সঠিক এন্ডপয়েন্ট বেছে নিতে আপনাকে সাহায্য করার জন্য আগের সারণীতে নিম্নলিখিত বৈশিষ্ট্যগুলি তালিকাভুক্ত করা হয়েছে:

  • এক্সিকিউশনের ধরন: উত্তরের জন্য অপেক্ষা করার সময় আপনার অ্যাপ্লিকেশন কীভাবে নেটওয়ার্ক কানেকশন ম্যানেজ করে তা নির্ধারণ করে। দুই ধরনের রয়েছে:
    • ব্লকিং এন্ডপয়েন্ট: API কোনও উত্তর না দেওয়া পর্যন্ত কানেকশন খোলা রাখুন।
    • নন-ব্লকিং এন্ডপয়েন্ট: ব্যাকগ্রাউন্ডে অনুরোধ প্রসেস করে। API অবিলম্বে একটি লং-রানিং অপারেশন (LRO) আইডি ফেরত দেয় যা আপনি পরে ফলাফল পেতে পোল করেন।
  • প্রসেস করা অনুরোধ: এন্ডপয়েন্ট একটি রাউটিং অনুরোধ ম্যানেজ করে নাকি একসাথে একাধিক অনুরোধ প্রসেস করে তা নির্ধারণ করে।
  • অনুরোধের সর্বাধিক সাইজ: ছোট ও মাঝারি সাইজের অনুরোধ সরাসরি ইনলাইন পাঠানো হয় এবং সার্ভার-সাইড সীমা থাকে। Google Cloud Storage ব্যবহার করে বড় অনুরোধগুলি এই সীমা বাইপাস করে। এন্ডপয়েন্ট বিবরণের বিভাগে অনুরোধের সাইজের সঠিক সীমা খুঁজে নিন।
  • সমাধান করতে কত সময় লাগে: সহজ অনুরোধ অল্প সময়ে সমাধান করা যায়, তবে জটিল অনুরোধ সমাধান করতে বেশি সময় লাগে। সমাধানের সময় থেকে বোঝা যায় যে কতক্ষণ কানেকশন খোলা রাখতে হবে, তাই আপনার এন্ডপয়েন্ট বেছে নেওয়ার বিষয়টি টাইমআউট সীমার উপর নির্ভর করে। আরও তথ্যের জন্য, টাইম-আউট ও ডেডলাইন কনফিগার করুন।
  • Google Cloud Storage প্রয়োজন: এন্ডপয়েন্ট যা বড় অনুরোধ প্রসেস করে এবং সরাসরি Google Cloud Storage-এ ডেটা পড়ে ও লেখে। HTTP অনুরোধে ডেটা পাঠানোর পরিবর্তে, আপনি Cloud Storage বাকেটে আপনার অনুরোধ আপলোড করেন এবং API-তে URI পাস করেন।

এন্ডপয়েন্টের বিবরণ

Route Optimization API-এর চারটি এন্ডপয়েন্ট আছে। নিম্নলিখিত বিভাগে প্রতিটি এন্ডপয়েন্ট কীভাবে কাজ করে তা ব্যাখ্যা করা হয়েছে এবং একটি অনুরোধের উদাহরণ অন্তর্ভুক্ত করা হয়েছে।

OptimizeTours

OptimizeTours হল একটি ব্লকিং এন্ডপয়েন্ট যা অল্প সময়ের মধ্যে সমাধান করা যায় এমন একক অনুরোধের জন্য তৈরি করা হয়েছে। এটি সরাসরি উত্তরে একটি অপ্টিমাইজ করা রুট দেখায়। এটি একটি ব্লকিং এন্ডপয়েন্ট হওয়ার কারণে, API যাতে অনুরোধ প্রসেস করে উত্তর দিতে পারে, তার জন্য আপনাকে নেটওয়ার্ক কানেকশন চালু রাখতে হবে। এই এন্ডপয়েন্ট প্রায় ৪ এমবি পর্যন্ত ইনলাইন অনুরোধ গ্রহণ করে।

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 এন্ডপয়েন্ট ব্যবহার করে এই আইডি পোল করতে পারবেন। এই এন্ডপয়েন্ট প্রায় ৮ এমবি পর্যন্ত ইনলাইন অনুরোধ গ্রহণ করে।

OptimizeToursLongRunning-এর অনুরোধের উদাহরণ দেখুন

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

OptimizeToursUri

OptimizeToursUri হল একটি নন-ব্লকিং এন্ডপয়েন্ট যা দীর্ঘ সমাধান সময় এবং বড় ডেটা প্রয়োজনীয়তা (৮ এমবি-এর বেশি) সহ একক অনুরোধের জন্য তৈরি। এটি লং-রানিং অপারেশন (LRO) আইডি রিটার্ন করে। অনুরোধের স্ট্যাটাস চেক করতে আপনি GetOperation এন্ডপয়েন্ট ব্যবহার করে এই আইডি পোল করতে পারবেন।

আপনার পেলোড ইনলাইন পাঠানোর পরিবর্তে, আপনি Google Cloud Storage-এ আপনার OptimizeToursRequest আপলোড করেন। তারপর আপনি API-তে ইনপুট অনুরোধ ও আউটপুট ডেস্টিনেশন, উভয়ের জন্যই Cloud Storage URI পাস করেন। সার্ভার আপনার ইনপুট URI থেকে ডেটা পড়ে এবং আপনার আউটপুট URI-তে সরাসরি ফাইনাল OptimizeToursResponse লেখে। অপারেশন সম্পূর্ণ হয়ে গেলে, আপনি এই আউটপুট URI থেকে অপ্টিমাইজ করা রুট পড়তে পারবেন।

OptimizeToursUri-এর অনুরোধের উদাহরণ দেখুন

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

BatchOptimizeTours

BatchOptimizeTours হল একটি নন-ব্লকিং এন্ডপয়েন্ট যা একাধিক, স্বাধীন অপ্টিমাইজেশন অনুরোধ একই সাথে প্রসেস করার জন্য তৈরি করা হয়েছে। এটি লং-রানিং অপারেশন (LRO) আইডি রিটার্ন করে। আপনি GetOperation এন্ডপয়েন্ট ব্যবহার করে এই আইডি পোল করতে পারবেন যাতে অনুরোধের স্ট্যাটাস চেক করা এবং চূড়ান্ত অপ্টিমাইজ করা রুট ফিরিয়ে আনা যায়।

ইনলাইন পেলোড পাঠানোর পরিবর্তে, আপনি Google Cloud Storage-এ একাধিক OptimizeToursRequest আপলোড করেন। তারপর আপনি API-তে Cloud Storage URI পাস করেন। সার্ভার আপনার ইনপুট URI থেকে ডেটা পড়ে এবং প্রতিটি অনুরোধের জন্য সরাসরি আপনার আউটপুট URI-তে একটি OptimizeToursResponse লেখে।

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"
      }
    }
  ]
}