درخواست های API

هنگامی که پروژه خود را برای اعلام وابستگی ها برای کتابخانه سرویس گیرنده Google APIs خود برای جاوا تنظیم کردید، این مراحل را برای ارسال درخواست دنبال کنید. قطعه‌های موجود در این صفحه از نسخه 3 API مدیر منابع ابری استفاده می‌کنند.

مرحله 1: احراز هویت

نمونه com.google.auth.oauth2.GoogleCredentials را Instantiate کنید. برای کاربران Google Cloud، می‌توانید از GoogleCredentials.getApplicationDefault() برای دریافت اعتبارنامه پیش‌فرض برنامه استفاده کنید.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

برای اطلاعات بیشتر در مورد احراز هویت، به کتابخانه Google Auth Java مراجعه کنید.

مرحله 2: کلاس خدمات فوری

یک سرویس Google یک یا چند نسخه دارد. یک کلاس سرویس نشان دهنده نسخه ای از یک سرویس است و یک کلاس فرزند AbstractGoogleJsonClient است. به عنوان مثال com.google.api.services.cloudresourcemanager.v3.CloudResourceManager .

کلاس سازنده کلاس سرویس 3 پارامتر می گیرد:

همچنین متد setApplicationName() سازنده را با نام برنامه خود فراخوانی کنید. این هدر UserAgent را با نام برنامه تنظیم می کند و برای عیب یابی با گزارش ها مفید است.

کد به نظر می رسد:

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

مرحله 3: یک شی منبع ایجاد کنید

یک کلاس منبع نشان دهنده نوعی از منبع مدیریت شده توسط یک سرویس است. کلاس به عنوان یک کلاس داخلی از کلاس سرویس تعریف می شود. می توانید با استفاده از متدهای کلاس سرویس به آنها دسترسی داشته باشید.

به عنوان مثال، می توانید منبع "Projects" کلاس CloudResourceManager را دریافت کنید:

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

...

Projects projects = cloudResourceManager.projects();

مرحله 4: یک شی درخواست ایجاد کنید

عملیات در برابر شی منبع به عنوان کلاس های درخواست نمایش داده می شود. عملیات موجود به کلاس منبع بستگی دارد. به عنوان مثال، یک کلاس منبع که متدهای "ایجاد"، "دریافت" و "حذف" را ارائه می دهد به ترتیب شامل کلاس های درخواستی "ایجاد"، "دریافت" و "حذف" است.

برای مثال Cloud Resource Manager، می‌توانید با فراخوانی متد projects.get ، شی درخواست Get را ایجاد کنید:

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

مرحله 5: درخواست را اجرا کنید

یک شی درخواست دارای متد execute() است که درخواست را اجرا می کند. این فراخوانی یک درخواست HTTP را به سرویس Google اجرا می‌کند و پاسخ JSON را به یک کلاس مدل تبدیل می‌کند. به عنوان مثال، متد execute() شیء Get request یک شی پروژه را برمی گرداند:

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

خلاصه

با این مراحل، می‌توانید با استفاده از Google APIs Client Library برای جاوا درخواست‌ها را انجام دهید. در اینجا قطعه کدی است که تمام مراحل را با استفاده از سرویس Resource Manager ترکیب می کند.

package com.example;

import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
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();

    NetHttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
    GsonFactory 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());
  }
}