웹서비스를 만들기에 rest api 방식은 필수적인 기술이 되었다. 데이터를 제공해 주는 곳의 지원방식을 알아야 하는 것도 필요하지만 보통 get 방식을 사용한다. 웹서비스를 위해 rest api 를 get 방식으로 불러오는 것을 자바로 테스트 코드를 만들어 본다.
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){}
//--------------------------------------------------
}
}
'programming > SpringJava' 카테고리의 다른 글
자바 프로젝트를 메이븐 프로젝트 변환하기 How to convert Java Project to Maven Project (0) | 2021.03.19 |
---|---|
자바 현재 날짜와 시간 표시 형식 지정하기 (0) | 2021.03.14 |
rest api httpurlconnection 사용 post 호출 자바로 만들고 테스트 하기 (0) | 2021.03.13 |
rest api httpurlconnection 사용 get 호출 자바로 만들고 테스트 하기 (0) | 2021.03.12 |
rest api httpclient 사용 post 호출 자바로 만들고 테스트 하기 (0) | 2021.03.11 |
댓글