API 요청

Java용 Google API 클라이언트 라이브러리의 종속 항목을 선언하도록 프로젝트를 설정한 후 다음 단계에 따라 요청을 실행합니다. 이 페이지의 스니펫은 Cloud Resource Manager API v3을 사용합니다.

1단계: 인증

com.google.auth.oauth2.GoogleCredentials 인스턴스를 인스턴스화합니다. Google Cloud 사용자의 경우 GoogleCredentials.getApplicationDefault()를 사용하여 애플리케이션 기본 사용자 인증 정보를 가져올 수 있습니다.

GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();

인증에 관한 자세한 내용은 Google 인증 라이브러리 자바를 참조하세요.

2단계: 서비스 클래스 인스턴스화

Google 서비스에는 하나 이상의 버전이 있습니다. 서비스 클래스는 서비스 버전을 나타내며 AbstractGoogleJsonClient의 하위 클래스입니다. 예를 들면 com.google.api.services.cloudresourcemanager.v3.CloudResourceManager입니다.

서비스 클래스의 빌더 클래스는 세 가지 매개변수를 사용합니다.

또한 빌더의 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 get = projects.get("projects/your-project-id");

5단계: 요청 실행

요청 객체에는 요청을 실행하는 execute() 메서드가 있습니다. 이 호출은 Google 서비스에 대한 HTTP 요청을 실행하고 JSON 응답을 모델 클래스로 역직렬화합니다. 예를 들어 Get 요청 객체의 execute() 메서드는 프로젝트 객체를 반환합니다.

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

요약

이 단계를 통해 Java용 Google API 클라이언트 라이브러리를 사용하여 요청할 수 있습니다. 다음은 Resource Manager 서비스를 사용하여 모든 단계를 결합하는 코드 스니펫입니다.

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