Yêu cầu API

Sau khi thiết lập dự án để khai báo phần phụ thuộc cho Thư viện ứng dụng API của Google dành cho Java, hãy làm theo các bước sau để tạo yêu cầu. Các đoạn mã trong 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 thực thể. Đối với người dùng Google Cloud, bạn có thể sử dụng GoogleCredentials.getApplicationDefault() để tải Thông tin đăng nhập 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 của Google Java.

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ụ biểu thị một phiên bản của một dịch vụ và là một 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ụ nhận 3 tham số:

Ngoài ra, hãy gọi phương thức setApplicationName() của trình tạo bằng ứ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à hữu ích để khắc phục sự cố bằng nhật ký.

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

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

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 dịch vụ quản lý. Lớp này được định nghĩa là lớp bên trong của lớp dịch vụ. Bạn có thể truy cập vào bằng các phương thức trong lớp dịch vụ.

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

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 tài nguyên lớp cung cấp tính năng "create", "get" và "delete" chứa "Tạo", "Lấy" và "Xoá" các lớp yêu cầu tương ứng.

Đố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. Cuộc 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ự JSON cho một lớp mô hình. Ví dụ: phương thức execute() của Get đối tượng yêu cầu trả về đối tượng Dự án:

Project project = get.execute();
System.out.println("Project name: " + project.getDisplayName());

Tóm tắt

Với những bước này, bạn có thể đưa ra yêu cầu bằng cách sử dụng Thư viện ứng dụng API của Google cho Java. Đây là đoạn mã kết hợp tất cả các bước sử dụng phần Tài nguyên Dịch vụ của người quản lý.

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