Discovery API ব্যবহার করুন

এই ডকুমেন্টটি ডেভেলপারদের জন্য যারা ক্লায়েন্ট লাইব্রেরি, IDE প্লাগইন এবং Google API-এর সাথে ইন্টারঅ্যাক্ট করার জন্য অন্যান্য টুল লিখতে চান। Google APIs ডিসকভারি সার্ভিস আপনাকে একটি সাধারণ API এর মাধ্যমে অন্যান্য Google API সম্পর্কে মেশিন রিডেবল মেটাডেটা প্রকাশ করে উপরের সমস্ত কিছু করতে দেয়। এই নির্দেশিকাটি আবিষ্কার নথির প্রতিটি বিভাগের একটি ওভারভিউ প্রদান করে, সেইসাথে নথিটি কীভাবে ব্যবহার করতে হয় তার সহায়ক টিপস প্রদান করে।

API-এ সমস্ত কল অননুমোদিত, JSON-ভিত্তিক, REST অনুরোধ যা SSL ব্যবহার করে—অন্য কথায়, URLগুলি https দিয়ে শুরু হয়।

আবিষ্কার নথি বিন্যাস

এই বিভাগটি আবিষ্কার নথির একটি ওভারভিউ দেয়।

নিচের সমস্ত উদাহরণ সার্ভিস ইউসেজ API থেকে ডিসকভারি ডকুমেন্ট ব্যবহার করে। আপনি এই GET অনুরোধটি সম্পাদন করে পরিষেবা ব্যবহার API-এর জন্য আবিষ্কার নথি লোড করতে পারেন:

GET https://serviceusage.googleapis.com/$discovery/rest?version=v1

একটি আবিষ্কার নথির বিন্যাসে এমন তথ্য রয়েছে যা ছয়টি প্রধান বিভাগে পড়ে:

এই ডিসকভারি ডকুমেন্ট সেকশনের প্রতিটি নিচে বর্ণনা করা হয়েছে।

বেসিক API বর্ণনা

ডিসকভারি নথিতে API-নির্দিষ্ট বৈশিষ্ট্যগুলির একটি সেট রয়েছে। এই বৈশিষ্ট্যগুলি অগত্যা এই ক্রমে, বা আবিষ্কার ডক এর একই বিভাগে প্রদর্শিত হবে না:

"id": "serviceusage:v1",
"canonicalName": "Service Usage",
"revision": "20240331",
"servicePath": "",
"baseUrl": "https://serviceusage.googleapis.com/",
"kind": "discovery#restDescription",
"description": "Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use.",
"ownerDomain": "google.com",
"version_module": true,
"version": "v1",
"fullyEncodeReservedExpansion": true,
"name": "serviceusage",
"title": "Service Usage API",
"discoveryVersion": "v1",
"rootUrl": "https://serviceusage.googleapis.com/",
"protocol": "rest"

এই API-স্তরের বৈশিষ্ট্যগুলিতে name , version , title এবং description সহ একটি API-এর একটি নির্দিষ্ট সংস্করণ সম্পর্কে বিশদ অন্তর্ভুক্ত রয়েছে। protocol সর্বদা rest একটি নির্দিষ্ট মান থাকে, কারণ APIs আবিষ্কার পরিষেবা শুধুমাত্র API গুলি অ্যাক্সেস করার RESTful পদ্ধতিগুলিকে সমর্থন করে৷

servicePath ক্ষেত্রটি এই নির্দিষ্ট API সংস্করণের জন্য পাথ উপসর্গ নির্দেশ করে।

প্রমাণীকরণ

auth বিভাগে API-এর জন্য OAuth 2.0 auth স্কোপ সম্পর্কে বিশদ বিবরণ রয়েছে। OAuth 2.0 এর সাথে স্কোপগুলি কীভাবে ব্যবহার করবেন সে সম্পর্কে আরও জানতে, Google API অ্যাক্সেস করতে OAuth 2.0 ব্যবহার করুন দেখুন।

auth বিভাগে একটি নেস্টেড oauth2 এবং scopes বিভাগ রয়েছে। scopes বিভাগটি হল একটি কী/মান ম্যাপিং যা স্কোপের মান থেকে স্কোপ সম্পর্কে আরও বিশদ বিবরণের জন্য:

"auth": {
  "oauth2": {
    "scopes": {
      "https://www.googleapis.com/auth/cloud-platform": {
        "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
      },
      "https://www.googleapis.com/auth/cloud-platform.read-only": {
        "description": "View your data across Google Cloud services and see the email address of your Google Account"
      },
      "https://www.googleapis.com/auth/service.management": {
        "description": "Manage your Google API service configuration"
      }
    }
  }
}

auth বিভাগটি শুধুমাত্র একটি নির্দিষ্ট API-এর জন্য সুযোগ নির্ধারণ করে। এই স্কোপগুলি কীভাবে একটি API পদ্ধতির সাথে যুক্ত তা জানতে, নীচের পদ্ধতি বিভাগটি দেখুন৷

সম্পদ এবং স্কিমা

একটি API-এর ক্রিয়াকলাপগুলি ডেটা অবজেক্টের উপর কাজ করে যাকে resources বলা হয়। আবিষ্কারের নথিটি সম্পদের ধারণাকে ঘিরে তৈরি করা হয়েছে। প্রতিটি ডিসকভারি নথিতে একটি শীর্ষ-স্তরের resources বিভাগ থাকে যা API এর সাথে যুক্ত সমস্ত সংস্থানকে গোষ্ঠীভুক্ত করে। উদাহরণস্বরূপ, পরিষেবা ব্যবহার API-এর একটি services সংস্থান এবং শীর্ষ-স্তরের resources অধীনে একটি operations সংস্থান রয়েছে:

"resources": {
  "services": {
    // Methods associated with the services resource
  }
  "operations": {
    // Methods associated with the operations resource
  }
}

প্রতিটি সম্পদ বিভাগের ভিতরে সেই সম্পদের সাথে যুক্ত পদ্ধতি রয়েছে। উদাহরণ স্বরূপ, সার্ভিস ইউসেজ এপিআই এর services রিসোর্সের সাথে যুক্ত ছয়টি পদ্ধতি রয়েছে: get , enable , disable , batchGet , batchEnable , এবং list

স্কিমাগুলি আপনাকে বলে যে একটি API-তে সংস্থানগুলি কেমন দেখায়৷ প্রতিটি ডিসকভারি নথিতে একটি শীর্ষ-স্তরের schemas বিভাগ থাকে, যেটিতে অবজেক্টের স্কিমা আইডির একটি নাম/মূল্য যুক্ত থাকে। স্কিমা আইডিগুলি API প্রতি অনন্য, এবং ডিসকভারি নথির methods বিভাগে স্কিমাটিকে অনন্যভাবে সনাক্ত করতে ব্যবহৃত হয়। উদাহরণ স্বরূপ, সার্ভিস ইউসেজ API ডিসকভারি ডকুমেন্টের কয়েকটি স্কিমা এখানে দেওয়া হল:

"schemas": {
  "Method": {
    // JSON schema of the Method resource
  },
  "Authentication": {
    // JSON schema of the Authentication resource
  },
  "RubySettings": {
    // JSON schema of the RubySettings resource
  },
  "EnableServiceResponse": {
   // JSON schema of the EnableServiceResponse resource
  }
}

APIs আবিষ্কার পরিষেবা তার স্কিমা উপস্থাপনার জন্য JSON স্কিমা ড্রাফ্ট-03 ব্যবহার করে। নিম্নলিখিতটি EnableServiceResponse রিসোর্সের জন্য JSON স্কিমার একটি স্নিপেট, GoogleApiServiceusagev1Service এর সাথে যা এটি উল্লেখ করে। এই স্কিমাগুলির পাশাপাশি Pub/Sub API ( pubsub.googleapis.com ) সক্ষম করার অনুরোধের জন্য একটি প্রকৃত প্রতিক্রিয়ার একটি অংশ।

EnableServiceResponse রিসোর্স JSON স্কিমা: একটি পরিষেবা সক্ষম করার জন্য প্রকৃত প্রতিক্রিয়া:
"EnableServiceResponse": {
  "id": "EnableServiceResponse",
  "description": "Response message for the `EnableService` method. This response message is assigned to the `response` field of the returned Operation when that operation is done.",
  "properties": {
    "service": {
      "description": "The new state of the service after enabling.",
      "$ref": "GoogleApiServiceusageV1Service"
    }
  },
  "type": "object"
},
"GoogleApiServiceusageV1Service": {
  "description": "A service that is available for use by the consumer.",
  "properties": {
    "config": {
      "$ref": "GoogleApiServiceusageV1ServiceConfig",
      "description": "The service configuration of the available service. Some fields may be filtered out of the configuration in responses to the `ListServices` method. These fields are present only in responses to the `GetService` method."
    },
    "name": {
      "type": "string",
      "description": "The resource name of the consumer and service. A valid name would be: - projects/123/services/serviceusage.googleapis.com"
    },
    "state": {
      "enumDescriptions": [
        "The default value, which indicates that the enabled state of the service is unspecified or not meaningful. Currently, all consumers other than projects (such as folders and organizations) are always in this state.",
        "The service cannot be used by this consumer. It has either been explicitly disabled, or has never been enabled.",
        "The service has been explicitly enabled for use by this consumer."
      ],
      "description": "Whether or not the service has been enabled for use by the consumer.",
      "type": "string",
      "enum": [
        "STATE_UNSPECIFIED",
        "DISABLED",
        "ENABLED"
      ]
    },
    "parent": {
      "type": "string",
      "description": "The resource name of the consumer. A valid name would be: - projects/123"
    }
  },
  "id": "GoogleApiServiceusageV1Service",
  "type": "object"
}
"response": {
  "@type": "type.googleapis.com/google.api.serviceusage.v1.EnableServiceResponse",
  "service": {
    "name": "projects/232342569935/services/pubsub.googleapis.com",
    "config": {
      "name": "pubsub.googleapis.com",
      "title": "Cloud Pub/Sub API",
      "documentation": {
        "summary": "Provides reliable, many-to-many, asynchronous messaging between applications.\n"
      },
      "quota": {},
      "authentication": {},
      "usage": {
        "requirements": [
          "serviceusage.googleapis.com/tos/cloud"
        ]
      },
      "monitoring": {}
    },
    "state": "ENABLED",
    "parent": "projects/232342569935"
  }
}

বোল্ড ক্ষেত্রগুলি JSON স্কিমা এবং প্রকৃত প্রতিক্রিয়ার মধ্যে ম্যাপিং দেখায়।

এই উদাহরণে দেখানো হয়েছে, স্কিমাগুলিতে অন্যান্য স্কিমার উল্লেখ থাকতে পারে। আপনি যদি একটি ক্লায়েন্ট লাইব্রেরি তৈরি করেন তবে এটি আপনাকে আপনার ডেটা মডেল ক্লাসে একটি API এর বস্তুকে কার্যকরভাবে মডেল করতে সহায়তা করতে পারে। উপরে EnableServiceResponse উদাহরণে, service বৈশিষ্ট্য হল ID GoogleApiServiceusageV1Service সহ একটি স্কিমার একটি রেফারেন্স, পরিষেবা ব্যবহার API আবিষ্কার নথিতে আরেকটি স্কিমা৷ আপনি EnableServiceResponse রিসোর্সে GoogleApiServiceusageV1Service প্রপার্টিটিকে GoogleApiServiceusageV1Service স্কিমার মান দিয়ে প্রতিস্থাপন করতে পারেন (মনে রাখবেন যে $ref সিনট্যাক্স JSON স্কিমা স্পেক থেকে আসে)।

তাদের অনুরোধ এবং প্রতিক্রিয়া সংস্থাগুলি নির্দেশ করার সময় পদ্ধতিগুলি স্কিমাগুলিকেও উল্লেখ করতে পারে। আরও বিস্তারিত জানার জন্য পদ্ধতি বিভাগে পড়ুন।

পদ্ধতি

আবিষ্কার নথির মূল পদ্ধতিগুলিকে ঘিরে তৈরি করা হয়েছে। পদ্ধতিগুলি হল সেই ক্রিয়াকলাপ যা একটি API-তে সঞ্চালিত হতে পারে। আপনি ডিসকভারি ডকুমেন্টের বিভিন্ন ক্ষেত্রে methods সেকশন পাবেন, যার মধ্যে টপ লেভেলে (যাকে আমরা API-লেভেল মেথড বলি) বা resources লেভেলে।

"methods": {
  // API-level methods
}
"resources": {
  "resource1": {
    "methods": {
      // resource-level methods
    }
    "resources": {
      "nestedResource": {
        "methods": {
          // methods can even be found in nested-resources
        }
      }
    }
  }
}

একটি API-এ API-স্তরের পদ্ধতি থাকতে পারে , একটি সংস্থান অবশ্যই একটি methods বিভাগ থাকতে হবে।

প্রতিটি methods বিভাগ হল একটি মূল-মান মানচিত্র পদ্ধতির নাম থেকে সেই পদ্ধতি সম্পর্কে অন্যান্য বিবরণ পর্যন্ত। নীচের উদাহরণটি তিনটি পদ্ধতির নথি, get , enable এবং disable :

"methods": {
  "get": { //details about the "get" method },
  "enable": { //details about the "enable" method },
  "disable": { //details about the "disable" method }
}

অবশেষে, প্রতিটি পদ্ধতির বিভাগ সেই পদ্ধতি সম্পর্কে বিভিন্ন বৈশিষ্ট্যের বিবরণ দেয়। এখানে enable পদ্ধতির একটি উদাহরণ রয়েছে:

"enable": {
  "path": "v1/{+name}:enable",
  "request": {
    "$ref": "EnableServiceRequest"
  },
  "parameterOrder": [
    "name"
  ],
  "id": "serviceusage.services.enable",
  "response": {
    "$ref": "Operation"
  },
  "description": "Enable a service so that it can be used with a project.",
  "httpMethod": "POST",
  "flatPath": "v1/{v1Id}/{v1Id1}/services/{servicesId}:enable",
  "scopes": [
    "https://www.googleapis.com/auth/cloud-platform",
    "https://www.googleapis.com/auth/service.management"
  ],
  "parameters": {
    "name": {
      "location": "path",
      "description": "Name of the consumer and service to enable the service on. The `EnableService` and `DisableService` methods currently only support projects. Enabling a service requires that the service is public or is shared with the user enabling the service. An example name would be: `projects/123/services/serviceusage.googleapis.com` where `123` is the project number.",
      "required": true,
      "type": "string",
      "pattern": "^[^/]+/[^/]+/services/[^/]+$"
    }
  }
},

এই বিভাগে সাধারণ পদ্ধতির বিশদ রয়েছে যেমন পদ্ধতি সনাক্ত করার জন্য একটি অনন্য ID , ব্যবহার করার জন্য httpMethod এবং পদ্ধতির path (সম্পূর্ণ পদ্ধতির url গণনা করার জন্য কীভাবে path সম্পত্তি ব্যবহার করতে হয় তার বিশদ বিবরণের জন্য, একটি অনুরোধ রচনা বিভাগটি দেখুন)। এই সাধারণ পদ্ধতির বৈশিষ্ট্যগুলি ছাড়াও, কিছু বৈশিষ্ট্য রয়েছে যা আবিষ্কার নথিতে অন্যান্য বিভাগের সাথে পদ্ধতিটিকে সংযুক্ত করে:

স্কোপ

এই ডকুমেন্টেশনের আগে সংজ্ঞায়িত auth বিভাগে একটি নির্দিষ্ট API দ্বারা সমর্থিত সমস্ত স্কোপের তথ্য রয়েছে। যদি একটি পদ্ধতি এই স্কোপগুলির একটিকে সমর্থন করে তবে এটির একটি স্কোপ অ্যারে থাকবে। পদ্ধতি দ্বারা সমর্থিত প্রতিটি সুযোগের জন্য এই অ্যারেতে একটি এন্ট্রি রয়েছে।

মনে রাখবেন যে আপনার অ্যাপ্লিকেশনে ব্যবহার করার জন্য একটি প্রমাণীকরণের সুযোগ নির্বাচন করা বিভিন্ন কারণের উপর নির্ভর করে যেমন কোন পদ্ধতিগুলিকে কল করা হচ্ছে এবং পদ্ধতির সাথে কোন প্যারামিটারগুলি পাঠানো হয়েছে৷ অতএব, কোন সুযোগটি ব্যবহার করবেন তার সিদ্ধান্ত বিকাশকারীর উপর ছেড়ে দেওয়া হয়। আবিষ্কার শুধুমাত্র নথি যা স্কোপ একটি পদ্ধতির জন্য বৈধ।

অনুরোধ এবং প্রতিক্রিয়া

যদি পদ্ধতিটির একটি অনুরোধ বা প্রতিক্রিয়ার অংশ থাকে, তবে এগুলি যথাক্রমে request বা response বিভাগে নথিভুক্ত করা হয়। উদাহরণস্বরূপ, enable পদ্ধতির জন্য, request বিভাগের বিষয়বস্তু নির্দেশ করে যে পদ্ধতির অনুরোধটি EnableServiceRequest এর একটি ID সহ একটি JSON স্কিমা দ্বারা সংজ্ঞায়িত করা হয়েছে। এই স্কিমাটি শীর্ষ-স্তরের স্কিমা বিভাগে পাওয়া যাবে।

পরামিতি

যদি একটি পদ্ধতিতে পরামিতি থাকে যা ব্যবহারকারীর দ্বারা নির্দিষ্ট করা উচিত, এই পরামিতিগুলি পদ্ধতি-স্তরের parameters বিভাগে নথিভুক্ত করা হয়। এই বিভাগে সেই প্যারামিটার সম্পর্কে আরও বিশদ বিবরণের জন্য প্যারামিটার নামের একটি কী/মান ম্যাপিং রয়েছে।

উদাহরণস্বরূপ, enable পদ্ধতির জন্য একটি প্যারামিটার আছে: name । প্যারামিটারগুলি হয় path বা URL query যেতে পারে; location বৈশিষ্ট্য নির্দেশ করে যেখানে ক্লায়েন্ট লাইব্রেরি পরামিতি স্থাপন করা উচিত।

প্যারামিটার ডেটা type (দৃঢ়ভাবে টাইপ করা ভাষার জন্য দরকারী), প্যারামিটারটি required কিনা এবং প্যারামিটারটি একটি enum সহ প্যারামিটারটি বর্ণনা করে এমন আরও অনেক বৈশিষ্ট্য রয়েছে। এই বৈশিষ্ট্যগুলি সম্পর্কে আরও বিস্তারিত জানার জন্য এই API-এর জন্য রেফারেন্স ডকুমেন্টেশন দেখুন।

প্যারামিটার অর্ডার

ক্লায়েন্ট লাইব্রেরির জন্য তাদের ইন্টারফেস গঠনের জন্য অনেক উপায় রয়েছে। একটি উপায় হল পদ্ধতি স্বাক্ষরে প্রতিটি API প্যারামিটার সহ একটি পদ্ধতি থাকা। যাইহোক, যেহেতু JSON একটি ক্রমবিন্যস্ত বিন্যাস, তাই পদ্ধতি স্বাক্ষরে পরামিতিগুলি কীভাবে অর্ডার করতে হয় তা প্রোগ্রাম্যাটিকভাবে জানা কঠিন। parameterOrder অ্যারে অনুরোধ করার জন্য একটি নির্দিষ্ট প্যারামিটার অর্ডার প্রদান করে। অ্যারে প্রতিটি প্যারামিটারের নাম তাত্পর্যের ক্রম অনুসারে তালিকাভুক্ত করে; এটি পাথ বা ক্যোয়ারী পরামিতি ধারণ করতে পারে, কিন্তু অ্যারের প্রতিটি প্যারামিটার প্রয়োজন।

মিডিয়া আপলোড

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

enable পদ্ধতিতে mediaUpload বিভাগ নেই। যাইহোক, একটি সাধারণ mediaUpload বিভাগ নিম্নলিখিত মত দেখতে পারে:

"supportsMediaUpload": true,
"mediaUpload": {
  "accept": [
    "image/*"
  ],
  "maxSize": "10MB",
  "protocols": {
    "simple": {
      "multipart": true,
      "path": "/upload/storage/v1beta1/b/{bucket}/o"
    },
    "resumable": {
      "multipart": true,
      "path": "/resumable/upload/storage/v1beta1/b/{bucket}/o"
    }
  }
}

উপরের উদাহরণে, supportsMediaUpload বৈশিষ্ট্য হল একটি বুলিয়ান মান যা নির্ধারণ করে যে পদ্ধতিটি মিডিয়া আপলোড করা সমর্থন করে কিনা। মানটি সত্য হলে mediaUpload বিভাগটি নথিভুক্ত করে যে ধরনের মিডিয়া আপলোড করা যেতে পারে।

accept সম্পত্তি মিডিয়া-রেঞ্জের একটি তালিকা যা নির্ধারণ করে যে কোন মাইম-টাইপ আপলোড করার জন্য গ্রহণযোগ্য। উপরের উদাহরণে দেখানো এন্ডপয়েন্ট যেকোনো ইমেজ ফরম্যাট গ্রহণ করবে।

maxSize বৈশিষ্ট্য একটি আপলোড সর্বোচ্চ আকার আছে. মান হল MB, GB বা TB-এর এককে একটি স্ট্রিং৷ উপরের উদাহরণে, আপলোডগুলি সর্বাধিক 10 এমবি আকারে সীমাবদ্ধ৷ মনে রাখবেন যে এই মানটি সেই API-এর জন্য একটি পৃথক ব্যবহারকারীর অবশিষ্ট সঞ্চয়স্থান কোটা প্রতিফলিত করে না, তাই আপলোডটি maxSize এর চেয়ে কম হলেও ক্লায়েন্ট লাইব্রেরীকে একটি আপলোড পরিচালনা করার জন্য প্রস্তুত থাকতে হবে যা অপর্যাপ্ত স্থানের কারণে ব্যর্থ হয়।

protocols বিভাগটি আপলোড প্রোটোকলগুলির তালিকা করে যা একটি পদ্ধতি সমর্থন করে। simple প্রোটোকল হল শুধুমাত্র একটি একক HTTP অনুরোধে প্রদত্ত এন্ডপয়েন্টে মিডিয়া পোস্ট করা। resumable প্রোটোকল বোঝায় যে path URI-তে দেওয়া শেষ পয়েন্টটি পুনরায় শুরুযোগ্য আপলোড প্রোটোকলকে সমর্থন করে। যদি multipart প্রপার্টি true হয় তাহলে এন্ডপয়েন্ট মাল্টিপার্ট আপলোড গ্রহণ করে, যার অর্থ JSON অনুরোধ এবং মিডিয়া উভয়ই একটি mutlipart/সম্পর্কিত বডিতে একসাথে মোড়ানো এবং একসাথে পাঠানো যেতে পারে। মনে রাখবেন যে simple এবং resumable উভয় প্রোটোকলই মাল্টিপার্ট আপলোড সমর্থন করতে পারে।

path প্রপার্টিটি হল একটি URI টেমপ্লেট এবং এটিকে প্রসারিত করা উচিত পদ্ধতির জন্য path প্রপার্টির মত, যেমনটি একটি অনুরোধ রচনা বিভাগে বর্ণিত হয়েছে।

মিডিয়া ডাউনলোড

যদি একটি পদ্ধতি মিডিয়া ডাউনলোড করা সমর্থন করে, যেমন ছবি, অডিও, বা ভিডিও, তাহলে সেটি supportsMediaDownload প্যারামিটার দ্বারা নির্দেশিত হয়:

"supportsMediaDownload": true,

মিডিয়া ডাউনলোড করার সময় আপনাকে অনুরোধ URL-এ media alt ক্যোয়ারী প্যারামিটার সেট করতে হবে।

API পদ্ধতির useMediaDownloadService বৈশিষ্ট্যটি true হলে, একটি পুনঃনির্দেশ এড়াতে servicePath এর আগে সন্নিবেশ /download । উদাহরণস্বরূপ, ডাউনলোড পাথ হল /download/youtube/v3/captions/{id} যদি servicePath এবং path সংমিশ্রণ /youtube/v3/captions/{id} হয়। useMediaDownloadService ব্যবহার করলেও /download সহ মিডিয়া ডাউনলোড URL তৈরি করার পরামর্শ দেওয়া হয়।

সাধারণ পরামিতি

শীর্ষ-স্তরের আবিষ্কার নথিতে একটি parameters বৈশিষ্ট্য রয়েছে। এই বিভাগটি প্রতিটি পদ্ধতির জন্য পরামিতি বিভাগের অনুরূপ, তবে এই পরামিতিগুলি API-এর যেকোনো পদ্ধতিতে প্রয়োগ করা যেতে পারে।

উদাহরণ স্বরূপ, সার্ভিস ইউসেজ এপিআই-এর get এবং list পদ্ধতিতে অনুরোধের প্যারামিটারে একটি prettyPrint প্যারামিটার থাকতে পারে, যা মানব-পাঠযোগ্য বিন্যাসে সেই সমস্ত পদ্ধতির প্রতিক্রিয়া ফর্ম্যাট করবে। এখানে সাধারণ পরামিতিগুলির একটি তালিকা রয়েছে:

প্যারামিটার অর্থ নোট প্রযোজ্যতা
access_token বর্তমান ব্যবহারকারীর জন্য OAuth 2.0 টোকেন।
alt

প্রতিক্রিয়ার জন্য ডেটা বিন্যাস।

  • বৈধ মান: json , atom , csv
  • ডিফল্ট মান: API প্রতি পরিবর্তিত হয়।
  • প্রতিটি API-এর জন্য সমস্ত মান উপলব্ধ নয়।
  • সমস্ত সংস্থানগুলির জন্য সমস্ত ক্রিয়াকলাপে প্রযোজ্য।
callback কলব্যাক ফাংশন।
  • জাভাস্ক্রিপ্ট কলব্যাক ফাংশনের নাম যা প্রতিক্রিয়া পরিচালনা করে।
  • JavaScript JSON-P অনুরোধে ব্যবহৃত হয়।
fields প্রতিক্রিয়া অন্তর্ভুক্ত করার জন্য ক্ষেত্রগুলির একটি উপসেট নির্দিষ্ট করে নির্বাচক৷
  • ভাল কর্মক্ষমতা জন্য ব্যবহার করুন.
key API কী। (প্রয়োজনীয়)
  • আপনি একটি OAuth 2.0 টোকেন প্রদান না করা পর্যন্ত প্রয়োজনীয়৷
  • আপনার API কী আপনার প্রজেক্টকে শনাক্ত করে এবং আপনাকে API অ্যাক্সেস, কোটা এবং রিপোর্ট প্রদান করে।
  • APIs কনসোল থেকে আপনার প্রকল্পের API কী পান।
prettyPrint পরিচয় এবং লাইন বিরতি সহ প্রতিক্রিয়া প্রদান করে।
  • true হলে মানব-পাঠযোগ্য বিন্যাসে প্রতিক্রিয়া প্রদান করে।
  • ডিফল্ট মান: API প্রতি পরিবর্তিত হয়।
  • যখন এটি false হয়, এটি প্রতিক্রিয়া পেলোডের আকার হ্রাস করতে পারে, যা কিছু পরিবেশে আরও ভাল কর্মক্ষমতার দিকে নিয়ে যেতে পারে।
quotaUser userIp বিকল্প।
  • ব্যবহারকারীর আইপি ঠিকানা অজানা থাকা অবস্থায়ও আপনাকে সার্ভার-সাইড অ্যাপ্লিকেশন থেকে প্রতি-ব্যবহারকারী কোটা প্রয়োগ করতে দেয়। এটি ঘটতে পারে, উদাহরণস্বরূপ, ব্যবহারকারীর পক্ষ থেকে অ্যাপ ইঞ্জিনে ক্রোন কাজ চালানোর অ্যাপ্লিকেশনগুলির সাথে।
  • আপনি যেকোন নির্বিচারে স্ট্রিং চয়ন করতে পারেন যা ব্যবহারকারীকে অনন্যভাবে সনাক্ত করে, তবে এটি 40টি অক্ষরের মধ্যে সীমাবদ্ধ।
  • উভয়ই প্রদান করা হলে userIp ওভাররাইড করে।
  • ক্যাপিং ব্যবহার সম্পর্কে আরও জানুন।
userIp শেষ ব্যবহারকারীর IP ঠিকানা যার জন্য API কল করা হচ্ছে।
  • সার্ভার-সাইড অ্যাপ্লিকেশন থেকে API কল করার সময় আপনাকে প্রতি-ব্যবহারকারী কোটা প্রয়োগ করতে দেয়।
  • ক্যাপিং ব্যবহার সম্পর্কে আরও জানুন।

ইনলাইন ডকুমেন্টেশন

প্রতিটি ডিসকভারি ডকুমেন্ট এপিআই-এর জন্য ইনলাইন ডকুমেন্টেশন প্রদান করে এমন অনেকগুলি description ক্ষেত্র সহ টীকা করা হয়। নিম্নলিখিত API উপাদানগুলির জন্য description ক্ষেত্রগুলি পাওয়া যেতে পারে:

  • API নিজেই
  • OAuth স্কোপ
  • রিসোর্স স্কিমা
  • API পদ্ধতি
  • পদ্ধতির পরামিতি
  • নির্দিষ্ট প্যারামিটারের জন্য গ্রহণযোগ্য মান

এই ক্ষেত্রগুলি বিশেষভাবে উপযোগী যদি আপনি একটি ক্লায়েন্ট লাইব্রেরির জন্য মানব পাঠযোগ্য ডকুমেন্টেশন তৈরি করতে Google APIs আবিষ্কার পরিষেবা ব্যবহার করতে চান—উদাহরণস্বরূপ, JavaDoc।