เมื่อตั้งค่าโปรเจ็กต์เพื่อประกาศทรัพยากร Dependency สำหรับไลบรารีของไคลเอ็นต์ Google APIs สำหรับ Java ให้ทำตามขั้นตอนต่อไปนี้เพื่อส่งคำขอ ข้อมูลโค้ดในหน้านี้ใช้ Cloud Resource Manager API เวอร์ชัน 3
ขั้นตอนที่ 1: การตรวจสอบสิทธิ์
สร้างอินสแตนซ์ com.google.auth.oauth2.GoogleCredentials
สำหรับผู้ใช้ Google Cloud คุณอาจใช้ GoogleCredentials.getApplicationDefault()
เพื่อรับข้อมูลเข้าสู่ระบบเริ่มต้นของแอปพลิเคชัน
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ได้ที่ Google Auth Library Java
ขั้นตอนที่ 2: สร้างอินสแตนซ์บริการ
บริการของ Google จะมีอย่างน้อย 1 เวอร์ชัน คลาสบริการแสดงถึงเวอร์ชันของบริการและเป็นคลาสย่อยของ AbstractGoogleJsonClient
ตัวอย่างเช่น
com.google.api.services.cloudresourcemanager.v3.CloudResourceManager
คลาสเครื่องมือสร้างของคลาสบริการมีพารามิเตอร์ 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)
จะแสดงอินสแตนซ์ของ URL ดังกล่าว
เรียกเมธอด 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: สร้างออบเจ็กต์ทรัพยากร
คลาสทรัพยากรแสดงถึงประเภททรัพยากรที่จัดการโดยบริการ โดยคลาสนี้เป็นคลาสภายในของคลาสบริการ ซึ่งคุณจะเข้าถึงได้โดยใช้วิธีการในคลาสบริการ
เช่น คุณอาจรับทรัพยากร "โปรเจ็กต์" ของคลาส CloudResourceManager ดังนี้
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
ขั้นตอนที่ 4: สร้างออบเจ็กต์คำขอ
การดำเนินการกับออบเจ็กต์ทรัพยากรจะแสดงเป็นคลาสคำขอ การดำเนินการที่ใช้ได้จะขึ้นอยู่กับคลาสทรัพยากร ตัวอย่างเช่น คลาสทรัพยากรที่มีเมธอด "create", "get" และ "delete" มีคลาสคำขอ "Create", "Get" และ "Delete" ตามลำดับ
สำหรับตัวอย่างของ Cloud Resource Manager คุณสร้างออบเจ็กต์คำขอรับได้โดยเรียกใช้เมธอด projects.get
ดังนี้
Get get = projects.get("projects/your-project-id");
ขั้นตอนที่ 5: ดำเนินการตามคำขอ
ออบเจ็กต์คำขอมีเมธอด execute()
ที่เรียกใช้คำขอ การเรียกนี้จะเรียกใช้คำขอ HTTP ไปยังบริการของ Google และดีซีเรียลไลซ์การตอบกลับ JSON ไปยังคลาสโมเดล ตัวอย่างเช่น เมธอด execute()
ของออบเจ็กต์คำขอรับจะแสดงผลออบเจ็กต์โปรเจ็กต์ ดังนี้
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.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());
}
}