Yêu cầu API

Sau khi thiết lập dự án để khai báo các phần phụ thuộc cho Thư viện ứng dụng Java cho API của Google, hãy làm theo các bước sau để tạo yêu cầu. Đoạn mã trong trang này sử dụng phiên bản 3 của API Cloud Resource Manager.

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() để lấy 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ề việc xác thực, hãy tham khảo Thư viện xác thực Java của Google.

Bước 2: Tạo thực thể Lớp dịch vụ

Mỗi 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ụ sẽ nhận 3 tham số:

Đồng thời, 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 sẽ đặt tiêu đề UserAgent bằng tên ứng dụng và giúp khắc phục sự cố liên quan đến nhật ký.

Mã sẽ có dạng như sau:

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();

Bước 3: Tạo đối tượng tài nguyên

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 định nghĩa là một lớp bên trong của lớp dịch vụ. Bạn có thể truy cập chúng bằng các phương thức trong lớp dịch vụ.

Ví dụ: bạn có thể lấy tài nguyên "Dự án" của lớp CloudResourceManager:

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

...

Projects projects = cloudResourceManager.projects();

Bước 4: Tạo đố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 lớp yêu cầu. Các thao tác có sẵn 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ẽ chứa các lớp yêu cầu "Create", "Get" và "Delete" tương ứng.

Trong 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 này. Lệnh gọi này thực thi một yêu cầu HTTP đến dịch vụ của Google và giải tuần tự phản hồi JSON cho 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 (Dự án):

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 dành cho Java. Dưới đây là đoạn mã kết hợp tất cả các bước sử dụng dịch vụ Trình quản lý tài nguyên.

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());
  }
}