Sau khi bạn thiết lập dự án để khai báo các phần phụ thuộc cho Thư viện ứng dụng Google API dành cho Java, hãy làm theo các bước sau để đưa ra yêu cầu. Các đoạn mã trên trang này sử dụng phiên bản 3 của Cloud Resource Manager API.
Bước 1: Xác thực
Tạo thực thể com.google.auth.oauth2.GoogleCredentials. Đối với người dùng Google Cloud, bạn có thể sử dụng GoogleCredentials.getApplicationDefault() để nhận Thông tin xác thực mặc định của ứng dụng.
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
Để biết thêm thông tin về quy trình xác thực, hãy tham khảo Thư viện xác thực của Google cho Java.
Bước 2: Khởi tạo Lớp dịch vụ
Một dịch vụ của Google có một hoặc nhiều phiên bản. Lớp dịch vụ đại diện cho một phiên bản của dịch vụ và là lớp con của AbstractGoogleJsonClient.
Ví dụ: com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.
Lớp trình tạo của lớp dịch vụ có 3 tham số:
com.google.api.client.http.HttpTransport.new com.google.api.client.http.javanet.NetHttpTransport()tạo một thực thể của nó.com.google.api.client.json.JsonFactory.GsonFactory.getDefaultInstance()tạo một thực thể của nó.com.google.api.client.http.HttpRequestInitializer.new HttpCredentialsAdapter(credentials)sẽ cho bạn một thực thể của đối tượng này.
Ngoài ra, hãy gọi phương thức setApplicationName() của trình tạo bằng tên ứng dụng của bạn. Thao tác này đặt tiêu đề UserAgent bằng tên ứng dụng và hữu ích cho việc khắc phục sự cố bằng nhật ký.
Mã sẽ có dạng như sau:
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();
Bước 3: Tạo đối tượng tài nguyên
Một lớp tài nguyên đại diện cho một loại tài nguyên do một dịch vụ quản lý. Lớp này được xác định là một lớp bên trong của lớp dịch vụ. Bạn có thể truy cập vào các đối tượng này bằng cách sử dụng các phương thức trong lớp dịch vụ.
Ví dụ: bạn có thể nhận tài nguyên "Projects" của lớp CloudResourceManager:
import com.google.api.services.cloudresourcemanager.v3.CloudResourceManager.Projects;
...
Projects projects = cloudResourceManager.projects();
Bước 4: Tạo một đối tượng yêu cầu
Các thao tác đối với đối tượng tài nguyên được biểu thị dưới dạng các lớp yêu cầu. Các thao tác có thể thực hiện sẽ phụ thuộc vào lớp tài nguyên. Ví dụ: một lớp tài nguyên cung cấp các phương thức "create", "get" và "delete" sẽ lần lượt chứa các lớp yêu cầu "Create", "Get" và "Delete".
Đối với ví dụ về Cloud Resource Manager, bạn có thể tạo đối tượng yêu cầu Get bằng cách gọi phương thức projects.get:
Get get = projects.get("projects/your-project-id");
Bước 5: Thực thi yêu cầu
Đối tượng yêu cầu có phương thức execute() chạy yêu cầu. Lệnh gọi này thực thi một yêu cầu HTTP đến dịch vụ của Google và chuyển đổi phản hồi JSON thành một lớp mô hình. Ví dụ: phương thức execute() của đối tượng Get request sẽ trả về một đối tượng Project:
Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());
Tóm tắt
Với các bước này, bạn có thể đưa ra yêu cầu bằng Thư viện ứng dụng API của Google cho Java. Sau đây là đoạn mã kết hợp tất cả các bước bằng cách sử dụng dịch vụ 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());
}
}