본문 바로가기
programming/SpringJava

rest api get 방식 자바로 만들기 테스트 하기

by 개코 - 개발과 코딩 2021. 3. 10.

웹서비스를 만들기에 rest api 방식은 필수적인 기술이 되었다. 데이터를 제공해 주는 곳의 지원방식을 알아야 하는 것도 필요하지만 보통 get 방식을 사용한다. 웹서비스를 위해 rest api 를 get 방식으로 불러오는 것을 자바로 테스트 코드를 만들어 본다.

rest api 테스트

rest api get 방식
자바로 만들기 테스트 하기

한 번 만들어 놓고, 테스트를 진행해 본다.
나중에라도 사용할 수 있도록 만드는 것이 좋지만, 테스트 코드는 나중에 수정을 해서 사용하도록 한다.
코드는 항상 변하고 개선되는 것이기 때문이기도 한다.
중요한 것은 나중에 일일히 검색하는 것을 방지하기 위함이다.

 

준비물

이클립스 : 자바를 개발하기 위한 개발툴

메이븐 ( maven ) : 외부 라이브러리 클래스를 추가하고 사용.

httpClient 라이브러리 : rest api 를 사용하기 위해 httpclient 를 위한 외부 라이브러리 필요.

<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.4</version>
</dependency>

테스트 데이터 : 테스트코드의 동작확인을 위한 데이터.
검색포털에서 test json url 또는 test xml url 로 검색하면 테스트 데이터를 제공하는 사이트들을 찾을 수 있다. 그곳들을 활용한다.

 

자바 메이븐 프로젝트를 만들기

자바 개발툴인 이클립스를 실행하고 메이븐 프로젝트를 만들어 준다.
그냥 자바 프로젝트를 만들었다면 메이븐 프로젝트로 변경해 준다.
위에서 언급한 httpclient 를 maven 으로 불러온다.

 

코드 작성

get 방식으로 웹서비스 테스트 데이터를 불러오는 코드를 작성한다.
생소할 수 있겠지만, 자세히 보면 어렵지 않고, 이미 대중적으로 사용되는 코드 형태이다.

import java.net.URI;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.HttpClientBuilder;

public class RestApi_JavaTest {

	public static void main(String[] args) {
		
		System.out.println("\n");
		System.out.println(" 시작 : Get방식 Rest API 테스트 -----");
		
		//--------------------------------------------------
		
		try {
			
			URI vUri = new URI("https://jsonplaceholder.typicode.com/posts");
			
			HttpClient client = HttpClientBuilder.create().build();
			HttpGet getRequest = new HttpGet(vUri);
			//getRequest.addHeader("x-api-key", RestTestCommon.API_KEY);

			HttpResponse vHttpResponse = client.execute(getRequest);

			if (vHttpResponse.getStatusLine().getStatusCode() == 200) {
				
				ResponseHandler<String> vResponseHandler = new BasicResponseHandler();
				String vResponse = vResponseHandler.handleResponse(vHttpResponse);
				
				System.out.println("\n");
				System.out.println("요청 성공");
				System.out.println("\t" + vHttpResponse.getStatusLine().getStatusCode());
				System.out.println("\t" + vHttpResponse.getStatusLine().getReasonPhrase());
				System.out.println("\t" + vResponse);
				
			} else {
				
				System.out.println("\n");
				System.out.println("요청 실패");
				System.out.println("\t" + vHttpResponse.getStatusLine().getStatusCode());
				System.out.println("\t" + vHttpResponse.getStatusLine().getReasonPhrase());
				
			}

		} catch (Exception ex){
			System.out.println(ex.toString());
		}
		
		//--------------------------------------------------
		
		System.out.println("\n");
		System.out.println("종료 : Get방식 Rest API 테스트 -----");
	}
}

 

필요없는 부분을 제거하고 보면 아래와 같다.
처리결과를 확인하기 위한 출력함수를 제거하면 볼품없다.
아래의 코드로 테스트를 하고 별도의 클래스로 만든다면 기록을 해두자.
나중에라도 써먹을 데가 있을 것이다.

import java.net.URI;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.HttpClientBuilder;

public class RestApi_JavaTest {

	public static void main(String[] args) {
		
		//--------------------------------------------------
		
		try {
			
			URI vUri = new URI("https://jsonplaceholder.typicode.com/posts");
			
			HttpClient client = HttpClientBuilder.create().build();
			HttpGet getRequest = new HttpGet(vUri);

			HttpResponse vHttpResponse = client.execute(getRequest);

			if (vHttpResponse.getStatusLine().getStatusCode() == 200) {
				
				ResponseHandler<String> vResponseHandler = new BasicResponseHandler();
				vResponseHandler.handleResponse(vHttpResponse);
				
			} else {
            }

		} catch (Exception ex){}
		
		//--------------------------------------------------
	}
}
반응형

댓글