개발

자바로 REST API 연동하는 방법과 실제 코드 예제 소개

닉네임 입니다 2024. 11. 15. 09:21
728x90
반응형

REST API 연동하기: 자바로 외부 서비스와 연결하는 방법

안녕하세요, IT와 프로그래밍에 관심 있는 여러분! 오늘은 자바를 활용하여 REST API를 연동하는 방법에 대해 알아보겠습니다. REST API는 웹 서비스 간의 데이터 교환을 쉽게 해주는 강력한 도구로, 많은 애플리케이션에서 사용되는 필수 기술입니다. 간단한 예제를 통해 코드 작성과 설명을 진행하겠습니다.

들어가며

API는 Application Programming Interface의 약자로, 서로 다른 소프트웨어 시스템 간의 통신을 가능하게 해 주는 매개체입니다. 다양한 데이터와 서비스를 손쉽게 이용할 수 있도록 도와줍니다. 오늘은 자바로 외부 API를 호출하여 데이터를 주고받는 방법을 배워보겠습니다.

코드 작성하기

아래는 간단한 REST API 호출 예제 코드입니다. 이 코드는 POST 요청을 보내고, 서버로부터 응답을 받아오는 구조를 가지고 있습니다.

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;

public class TestApi {
    public JSONObject ApiTest(){
        String data = "API 형식에 맞는 INPUT DATA"; 
        String url = "호출URL"; 

        JSONObject resultObject = new JSONObject(); 
        try{
            URL apiurl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection)apiurl.openConnection();
            conn.setRequestMethod("POST");
            conn.setRequestProperty("APIKey", "");  
            conn.setRequestProperty("Content-type","application/json");
            conn.setRequestProperty("Accept","application/json");
            conn.setDoInput(true);
            conn.setDoOutput(true);

            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
            wr.write(data);
            wr.flush();
            wr.close();

            StringBuilder sb = new StringBuilder();
            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { 
                BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
                String line;
                while ((line = br.readLine()) != null) {
                    sb.append(line).append("");
                }
                br.close();
            }else {
                sb.append("{"CODE" : ""+conn.getResponseCode()+""");
                sb.append(", "REASON" : ""+conn.getResponseMessage()+""}");
            }

            JSONParser jsonParser  = new JSONParser();
            resultObject = (JSONObject)jsonParser.parse(sb.toString());
        } catch (Exception e){
            e.printStackTrace();
        }
        return resultObject;
    }
}

코드 설명하기

  1. 입력 데이터와 URL 설정
    • dataurl 변수를 각각 API 형식에 맞는 입력 데이터와 호출할 URL을 설정합니다.
  2. HTTP 요청 설정
    • HttpURLConnection을 사용하여 POST 요청을 설정합니다. API 키 및 요청 헤더를 포함해 요청의 형식을 설정합니다.
  3. 데이터 전송
  • OutputStreamWriter를 통해 서버에 데이터를 전송합니다. 이 과정에서 입력 데이터가 API의 요구 형식에 맞춰 작성되어야 합니다.
  1. 응답 처리
    • 서버의 응답 코드를 확인하여 200(정상 응답)인 경우, 응답 데이터를 읽어 StringBuilder에 담아 JSON 객체로 변환합니다. 비정상 응답일 경우 응답 코드와 메시지를 출력합니다.

마무리하며

오늘 우리는 자바를 사용하여 REST API와 효과적으로 소통하는 방법을 배웠습니다. 이 예제를 바탕으로 다양한 외부 서비스와의 연동을 시도해 보세요! API 사용을 통해 데이터 활용도를 높이고, 더 복잡한 기능을 만들어낼 수 있습니다.

더 궁금한 점이나 도움이 필요하시다면 댓글로 남겨주세요. 다음 포스트에서 뵙겠습니다!

728x90
반응형