אחרי שתגדירו את הפרויקט להצהרה על יחסי התלות של ספריית הלקוח של Google APIs ל-Java, צריכה לפעול לפי השלבים הבאים כדי לשלוח בקשה. קטעי הקוד בדף הזה משתמשים בגרסה 3 של Cloud Resource Manager API.
שלב 1: אימות
יצירת אובייקטים
com.google.auth.oauth2.GoogleCredentials
מכונה. למשתמשי Google Cloud:
GoogleCredentials.getApplicationDefault()
כדי לקבל
Application Default Credentials
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
למידע נוסף על אימות אפשר לעיין במאמר בנושא Google Auth Library Java
שלב 2: יצירת תוכן של קטגוריית שירות
לשירות Google יש גרסה אחת או יותר. סוג שירות מייצג גרסה
של שירות, והוא קטגוריית צאצא של
AbstractGoogleJsonClient.
לדוגמה
com.google.api.services.cloudresourcemanager.v3.CloudResourceManager
מחלקת ה-builder של מחלקת השירות מקבלת 3 פרמטרים:
com.google.api.client.http.HttpTransport
GoogleNetHttpTransport.newTrustedTransport()
יוצר מופע שלו.com.google.api.client.json.JsonFactory
GsonFactory.getDefaultInstance()
יוצר מופע שלו.com.google.api.client.http.HttpRequestInitializer
new HttpCredentialsAdapter(credentials)
נותן מופע כזה.
קוראים גם לשיטת setApplicationName()
של ה-builder עם האפליקציה
שם. הפעולה הזו מגדירה את הכותרת של סוכן המשתמש עם שם האפליקציה, וזה מועיל
לפתרון בעיות עם יומנים.
הקוד נראה כך:
HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = GsonFactory.getDefaultInstance();
CloudResourceManager.Builder resourceManagerBuilder =
new CloudResourceManager.Builder(
transport, jsonFactory, new HttpCredentialsAdapter(credentials))
.setApplicationName("Example Java App");
CloudResourceManager cloudResourceManager = resourceManagerBuilder.build();
שלב 3: יצירת אובייקט משאב
מחלקה של משאב מייצגת את הסוג של המשאב מנוהלות על ידי שירות. המחלקה מוגדרת כמחלקה פנימית של סיווג השירות. יש לך אפשרות לגשת אליהן באמצעות ה-methods בסיווג השירות.
לדוגמה, אפשר לקבל את הכרטיסייה 'פרויקטים' המשאב של CloudResourceManager class:
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
שלב 4: יצירת אובייקט בקשה
הפעולות המיוצגות על אובייקט המשאב מיוצגות כמחלקות בקשות. הפעולות הזמינות תלויות בסוג המשאב. לדוגמה, משאב מחלקה שמציעה "create" , "get" ו-"delete" שיטות שכוללות 'יצירה', 'קבלה' ו'מחיקה' את סיווגי הבקשות, בהתאמה.
בדוגמה של Cloud Resource Manager, אפשר להגדיר את אובייקט הבקשה Get בתור
קריאה ל-projects.get
דרך:
Get get = projects.get("projects/your-project-id");
שלב 5: ביצוע הבקשה
לאובייקט בקשה יש את ה-method execute()
שמריצה את הבקשה. השיחה
מבצע בקשת HTTP לשירות Google ומבצע deserialize את קוד ה-JSON
תשובות למחלקה של מודל. לדוגמה, השיטה execute()
של הפקודה Get
אובייקט request מחזיר אובייקט Project:
Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());
סיכום
באמצעות השלבים האלה תוכלו לשלוח בקשות באמצעות ספריית הלקוח של Google APIs עבור Java. כאן מופיע קטע הקוד שמשלב את כל השלבים באמצעות המשאב שירות למנהל.
package com.example;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
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 = GoogleNetHttpTransport.newTrustedTransport();
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());
}
}