एपीआई अनुरोध

Google APIs Client Library for Java के लिए, डिपेंडेंसी का एलान करने के लिए प्रोजेक्ट सेट अप करने के बाद, अनुरोध करने के लिए यह तरीका अपनाएं. इस पेज पर मौजूद स्निपेट, Cloud Resource Manager API के v3 का इस्तेमाल करते हैं.

पहला चरण: पुष्टि करना

com.google.auth.oauth2.GoogleCredentials इंस्टेंस को इंस्टैंशिएट करें. Google Cloud के उपयोगकर्ता, ऐप्लिकेशन के डिफ़ॉल्ट क्रेडेंशियल पाने के लिए, GoogleCredentials.getApplicationDefault() का इस्तेमाल कर सकते हैं.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

प्रमाणीकरण के बारे में ज़्यादा जानने के लिए, Google Auth Library Java देखें.

दूसरा चरण: सेवा क्लास को इंस्टैंटिएट करना

Google की किसी सेवा के एक या उससे ज़्यादा वर्शन होते हैं. सर्विस क्लास, किसी सेवा के वर्शन को दिखाती है. यह AbstractGoogleJsonClient की चाइल्ड क्लास होती है. उदाहरण के लिए com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.

सर्विस क्लास का बिल्डर क्लास, तीन पैरामीटर लेता है:

साथ ही, अपने ऐप्लिकेशन के नाम के साथ बिल्डर के setApplicationName() तरीके को कॉल करें. यह ऐप्लिकेशन के नाम के साथ UserAgent हेडर सेट करता है. साथ ही, लॉग की मदद से समस्या हल करने में मददगार होता है.

कोड ऐसा दिखता है:

HttpTransport transport = new NetHttpTransport();
JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
CloudResourceManager.Builder resourceManagerBuilder =
    new CloudResourceManager.Builder(
        transport, jsonFactory, new HttpCredentialsAdapter(credentials))
        .setApplicationName("Example Java App");
CloudResourceManager cloudResourceManager = resourceManagerBuilder.build();

तीसरा चरण: संसाधन ऑब्जेक्ट बनाना

संसाधन क्लास, किसी सेवा के ज़रिए मैनेज किए जाने वाले संसाधन के टाइप को दिखाती है. क्लास को सर्विस क्लास की इनर क्लास के तौर पर तय किया जाता है. इन्हें सेवा क्लास में दिए गए तरीकों का इस्तेमाल करके ऐक्सेस किया जा सकता है.

उदाहरण के लिए, CloudResourceManager क्लास का "Projects" संसाधन पाया जा सकता है:

import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;

...

Projects projects = cloudResourceManager.projects();

चौथा चरण: अनुरोध ऑब्जेक्ट बनाना

संसाधन ऑब्जेक्ट के ख़िलाफ़ की जाने वाली कार्रवाइयों को अनुरोध क्लास के तौर पर दिखाया जाता है. उपलब्ध कार्रवाइयां, संसाधन क्लास पर निर्भर करती हैं. उदाहरण के लिए, "create", "get", और "delete" तरीके उपलब्ध कराने वाली संसाधन क्लास में, "Create", "Get", और "Delete" अनुरोध क्लास शामिल होती हैं.

Cloud Resource Manager के उदाहरण के लिए, projects.get तरीके को कॉल करके, Get अनुरोध ऑब्जेक्ट बनाया जा सकता है:

Get get = projects.get("projects/your-project-id");

पांचवां चरण: अनुरोध पूरा करना

अनुरोध ऑब्जेक्ट में execute() तरीका होता है, जो अनुरोध को पूरा करता है. यह कॉल, Google की सेवा के लिए एचटीटीपी अनुरोध को पूरा करता है. साथ ही, JSON रिस्पॉन्स को मॉडल क्लास में बदलता है. उदाहरण के लिए, Get request ऑब्जेक्ट का execute() तरीका, Project ऑब्जेक्ट दिखाता है:

Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());

खास जानकारी

इन चरणों को पूरा करके, Java के लिए Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके अनुरोध किए जा सकते हैं. यहां Resource Manager सेवा का इस्तेमाल करके, सभी चरणों को एक साथ दिखाने वाला कोड स्निपेट दिया गया है.

package com.example;

import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager;
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects.Get;
import com.google.api.services.cloudresourcemanager.v3.model.Project;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;

public class ResourceManagerSample {
  public static void main(String[] arguments) throws Exception {
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

    HttpTransport transport = new NetHttpTransport();
    JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
    CloudResourceManager.Builder resourceManagerBuilder =
        new CloudResourceManager.Builder(
            transport, jsonFactory, new HttpCredentialsAdapter(credentials))
            .setApplicationName("Example Java App");
    CloudResourceManager cloudResourceManager = resourceManagerBuilder.build();

    Projects projects = cloudResourceManager.projects();

    Get get = projects.get("projects/your-project-id");

    Project project = get.execute();
    System.out.println("Project display name: " + project.getDisplayName());
  }
}