پس از تنظیم پروژه خود برای اعلام وابستگیها برای کتابخانه کلاینت APIهای گوگل برای جاوا، این مراحل را برای ارسال درخواست دنبال کنید. قطعه کدهای موجود در این صفحه از نسخه ۳ API مدیریت منابع ابری استفاده میکنند.
مرحله ۱: احراز هویت
نمونهای از com.google.auth.oauth2.GoogleCredentials ایجاد کنید. برای کاربران Google Cloud، میتوانید GoogleCredentials.getApplicationDefault() برای دریافت اعتبارنامههای پیشفرض برنامه استفاده کنید.
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
برای اطلاعات بیشتر در مورد احراز هویت، به کتابخانه احراز هویت گوگل در جاوا مراجعه کنید.
مرحله 2: نمونهسازی کلاس سرویس
یک سرویس گوگل یک یا چند نسخه دارد. یک کلاس سرویس، نسخهای از یک سرویس را نشان میدهد و یک کلاس فرزند از AbstractGoogleJsonClient است. برای مثال com.google.api.services.cloudresourcemanager.v3.CloudResourceManager .
کلاس سازندهی کلاس سرویس، ۳ پارامتر میگیرد:
-
com.google.api.client.http.HttpTransport.new com.google.api.client.http.javanet.NetHttpTransport() یک نمونه از آن ایجاد میکند. -
com.google.api.client.json.JsonFactory.GsonFactory.getDefaultInstance()یک نمونه از آن ایجاد میکند. -
com.google.api.client.http.HttpRequestInitializer.new HttpCredentialsAdapter(credentials) نمونهای از آن را ارائه میدهد.
همچنین متد 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();
مرحله ۳: ایجاد یک شیء منبع
یک کلاس منبع، نوعی از منبع مدیریت شده توسط یک سرویس را نشان میدهد. این کلاس به عنوان یک کلاس داخلی از کلاس سرویس تعریف میشود. میتوانید با استفاده از متدهای موجود در کلاس سرویس به آنها دسترسی داشته باشید.
برای مثال، میتوانید منبع "Projects" از کلاس CloudResourceManager را دریافت کنید:
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
مرحله ۴: ایجاد یک شیء درخواست
عملیات روی شیء منبع به صورت کلاسهای درخواست نمایش داده میشوند. عملیات موجود به کلاس منبع بستگی دارد. برای مثال، یک کلاس منبع که متدهای "ایجاد"، "دریافت" و "حذف" را ارائه میدهد، به ترتیب شامل کلاسهای درخواست "ایجاد"، "دریافت" و "حذف" است.
برای مثال در Cloud Resource Manager، میتوانید با فراخوانی متد projects.get شیء درخواست Get را ایجاد کنید:
Get get = projects.get("projects/your-project-id");
مرحله ۵: اجرای درخواست
یک شیء درخواست (request object) دارای متد execute() است که درخواست را اجرا میکند. این فراخوانی، یک درخواست HTTP را به سرویس گوگل اجرا میکند و پاسخ JSON را به یک کلاس مدل deserialize میکند. برای مثال، متد execute() از شیء درخواست Get، یک شیء Project را برمیگرداند:
Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());
خلاصه
با این مراحل، میتوانید با استفاده از کتابخانه کلاینت 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());
}
}