본문으로 건너뛰기

Java

Platform API 토큰을 받으려면 REST 가이드부터 시작하세요. 이 예시는 Java의 HttpClient와 JSON 파싱용 Jackson을 사용합니다.

Gradle 프로젝트를 만드세요. 다음 build.gradle을 추가하세요:

plugins {
id 'java'
id 'application'
}

repositories { mavenCentral() }
dependencies {
implementation 'com.fasterxml.jackson.core:jackson-databind:2.19.0'
}
application { mainClass = 'dev.reconstruct.example.Main' }

src/main/java/dev/reconstruct/example/Main.java로 저장하세요:

package dev.reconstruct.example;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public final class Main {
private static final String BASE = "https://reconstruct.dev/api/v1/platform";

private static JsonNode get(HttpClient client, ObjectMapper mapper,
String token, String path) throws Exception {
var request = HttpRequest.newBuilder(URI.create(BASE + path))
.header("Authorization", "Bearer " + token)
.timeout(Duration.ofSeconds(10))
.GET().build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() != 200) {
throw new IllegalStateException("API returned HTTP " + response.statusCode());
}
return mapper.readTree(response.body());
}

public static void main(String[] args) throws Exception {
String token = System.getenv("CR_RECONSTRUCT_API_TOKEN");
if (token == null || token.isBlank()) {
throw new IllegalStateException("Set CR_RECONSTRUCT_API_TOKEN");
}
var client = HttpClient.newHttpClient();
var mapper = new ObjectMapper();
var page = get(client, mapper, token, "/catalogs?pageSize=10");
for (var catalog : page.path("catalogs")) {
String id = catalog.path("catalogId").asText();
String encoded = URLEncoder.encode(id, StandardCharsets.UTF_8)
.replace("+", "%20");
var detail = get(client, mapper, token, "/catalogs/" + encoded);
System.out.println(detail.path("catalogId").asText() + ": "
+ detail.path("description").asText());
}
if (page.hasNonNull("nextPageToken")) {
System.out.println("Next page token: " + page.get("nextPageToken").asText());
}
}
}

gradle run을 실행하세요. wrapper가 있으면 ./gradlew run을 사용하세요. 다음 페이지를 얻으려면 nextPageToken을 URL 인코딩한 pageToken 쿼리 매개변수로 보내세요.