[java] Java Play Framework에서의 웹 서비스 호출 방법은 어떻게 되나요?

Java Play Framework는 웹 애플리케이션을 개발하기 위한 강력한 프레임워크입니다. 웹 서비스와의 통신은 매우 중요한 부분이며, Play Framework에서는 다양한 방법을 제공합니다. 여기에서는 두 가지 일반적인 방법을 살펴보겠습니다.

  1. HTTPURLConnection을 사용한 웹 서비스 호출
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class WebServiceCaller {
    public static String callWebService(String url) throws Exception {
        // URL을 생성하고 연결합니다.
        URL apiUrl = new URL(url);
        HttpURLConnection conn = (HttpURLConnection) apiUrl.openConnection();

        // HTTP 요청 방식 설정 (GET, POST 등)
        conn.setRequestMethod("GET");

        // 응답 코드 체크
        if (conn.getResponseCode() != 200) {
            throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
        }

        // 응답 내용 읽기
        BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String output;
        StringBuilder response = new StringBuilder();

        while ((output = br.readLine()) != null) {
            response.append(output);
        }

        // 연결 해제
        conn.disconnect();

        // 웹 서비스 응답 반환
        return response.toString();
    }
}

이 코드는 Java의 HttpURLConnection을 사용하여 웹 서비스를 호출하는 기본 예제입니다. callWebService 메서드는 원하는 웹 서비스의 URL을 매개변수로 받고, 해당 URL로 GET 요청을 보내고 응답을 반환합니다.

  1. Play Framework의 WS API를 사용한 웹 서비스 호출
import play.libs.ws.*;
import play.libs.Json;

public class WebServiceCaller {
    private final WSClient ws;

    // Play Framework의 의존성 주입을 사용하여 WSClient를 인스턴스화합니다.
    public WebServiceCaller(WSClient ws) {
        this.ws = ws;
    }
    
    public CompletionStage<WSResponse> callWebService(String url) {
        // 웹 서비스 호출
        return ws.url(url)
                .get()
                .thenApply(response -> {
                    if (response.getStatus() != 200) {
                        throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
                    }
                    return response;
                });
    }
}

이 코드는 Play Framework의 WS API를 사용하여 웹 서비스를 호출하는 예제입니다. callWebService 메서드는 원하는 웹 서비스의 URL을 매개변수로 받고, 해당 URL로 GET 요청을 보내고 응답을 반환합니다. CompletionStage를 사용하여 비동기적으로 응답을 처리할 수 있습니다.

위의 두 가지 방법으로 Java Play Framework에서 웹 서비스를 호출하는 것은 매우 간단합니다. 자신에게 편리한 방식을 선택하여 개발하시면 됩니다.

참고 문서: