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

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 থেকে ডেটা পড়ে এবং ফাইনাল 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 এন্ডপয়েন্ট ব্যবহার করে এই আইডি পোল করতে পারেন।

ইনলাইন পে-লোড পাঠানোর পরিবর্তে, আপনি 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"
      }
    }
  ]
}