rest api 데이터를 호출하는 방법도 알았고, 금융상품한눈에 api 를 사용할 수 있는 방법도 알았다.
이제는 테스트를 하고 데이터가 어떻게 나오는지 확인만 하면 된다.
이 과정이 성공했다면 자신이 할 수 있는 방법으로 웹서비스를 만들거나 별도의 프로그램을 만들면 된다.
오픈 api 테스트
금융감독원 금융상품통합비교 금융상품한눈에
금융상품한눈에 홈페이지를 바로가기 하면 금융상품에 대한 여러가지 정보들을 확인할 수 있다.
또한, 자신들이 가진 데이터를 오픈 api 로 제공하여 개발자들의 독자적이고 참신한 컨텐츠를 만들 수 있도록 지원한다.
rest api 호출방법 살펴보기
데이터를 불러오려면 rest api 호출방법을 알아야 한다.
이것을 위해 4가지 코드를 만들어 본 것이다.
apache 패키지를 사용한 HttpClient , 자바 기본 패키지를 사용한 HttpUrlConnection 을 가지고 get , post 방식으로 데이터를 호출하는 방법을 살펴보았다.
어떤 것을 사용해도 크게 상관은 없다.
2021.03.11 - [programming/java] - rest api httpclient 사용 post 호출 자바로 만들고 테스트 하기
2021.03.11 - [programming/java] - rest api httpclient 사용 post 호출 자바로 만들고 테스트 하기
2021.03.12 - [programming/java] - rest api httpurlconnection 사용 get 호출 자바로 만들고 테스트 하기
2021.03.13 - [programming/java] - rest api httpurlconnection 사용 post 호출 자바로 만들고 테스트 하기
요청url 확인하기
금융상품한눈에 오픈 api 를 사용하려면 먼저 사용신청을 하고 인증키를 받아야 한다.
2021.03.09 - [open api] - 오픈 api 신청 금융감독원 금융상품통합비교 금융상품한눈에
메뉴얼은 홈페이지에 접속하여 직접 확인해보자.
요청url 과 응답결과에 대해 설명한 명세서를 확인할 수 있다.
주의할 점은 필수로 요청해야 될 값과 아래의 결과파일, 발급받은 인증키 부분이다.
필수요청 파라미터
인증키 auth : api 사용신청 후 발급받은 인증키
권역코드 topFinGrpNo : 금융회사가 속한 권역 코드
페이지번호 pageNo : 조회할 페이지 번호
제공되는 서비스 데이터 항목
금융회사 api
- finlife.fss.or.kr/finlifeapi/companySearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=020000&pageNo=1
정기예금 api
- finlife.fss.or.kr/finlifeapi/depositProductsSearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=020000&pageNo=1
적금 api
- finlife.fss.or.kr/finlifeapi/savingProductsSearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=020000&pageNo=1
연금저축 api
- finlife.fss.or.kr/finlifeapi/annuitySavingProductsSearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=060000&pageNo=1
주택담보대출 api
- finlife.fss.or.kr/finlifeapi/mortgageLoanProductsSearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=050000&pageNo=1
전세자금대출 api
- finlife.fss.or.kr/finlifeapi/rentHouseLoanProductsSearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=050000&pageNo=1
개인신용대출 api
- finlife.fss.or.kr/finlifeapi/creditLoanProductsSearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=050000&pageNo=1
데이터 불러오기
이전에 만들어진 코드의 주소만 바꿔서 사용해 보도록 한다.
rest api 데이터 호출 예제는 윗 부분에 언급했다.
HttpClient 사용하여 데이터 불러오기
기존에 가지고 있던 코드에서 URI 의 주소만 변경해 주었다.
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_HttpClient_Get_JavaTest {
public static void main(String[] args) {
System.out.println("\n");
System.out.println(" 시작 : Get방식 Rest API 테스트 -----");
//--------------------------------------------------
try {
URI vUri = new URI("http://finlife.fss.or.kr/finlifeapi/companySearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=020000&pageNo=1");
HttpClient client = HttpClientBuilder.create().build();
HttpGet getRequest = new HttpGet(vUri);
HttpResponse vHttpResponse = client.execute(getRequest);
//Response 출력
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 테스트 -----");
}
}
HttpUrlConnection 사용하여 데이터 불러오기
기존의 코드에서 URI 부분의 주소만 변경해 주었다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class RestApi_HttpURLConnection_Get_JavaTest {
public static void main(String[] args) {
System.out.println("\n");
System.out.println(" 시작 : HttpURLConnection사용 Get방식 Rest API 테스트 -----");
//--------------------------------------------------
try {
StringBuilder vStringBuilder = new StringBuilder();
String vStringLine;
URL vURL = new URL("http://finlife.fss.or.kr/finlifeapi/companySearch.{결과파일}?auth={발급받은 인증키}&topFinGrpNo=020000&pageNo=1");
HttpURLConnection vHttpURLConnection = (HttpURLConnection) vURL.openConnection();
vHttpURLConnection.setConnectTimeout(5000);
vHttpURLConnection.setReadTimeout(5000);
vHttpURLConnection.setRequestProperty("User-Agent", "Mozilla/4.0");
vHttpURLConnection.setRequestMethod("GET");
vHttpURLConnection.setDoOutput(true);
if (vHttpURLConnection.getResponseCode() == HttpURLConnection.HTTP_OK) {
BufferedReader vBufferedReader = new BufferedReader(
new InputStreamReader(vHttpURLConnection.getInputStream(), "utf-8")
);
while ((vStringLine = vBufferedReader.readLine()) != null) {
vStringBuilder.append(vStringLine).append("\n");
}
vBufferedReader.close();
System.out.println("\n");
System.out.println("요청 성공");
System.out.println("\t" + vHttpURLConnection.getResponseCode());
System.out.println("\t" + vHttpURLConnection.getResponseMessage());
System.out.println("\t" + vStringBuilder.toString());
} else {
System.out.println("\n");
System.out.println("요청 실패");
System.out.println("\t" + vHttpURLConnection.getResponseCode());
System.out.println("\t" + vHttpURLConnection.getResponseMessage());
System.out.println("\t" + vStringBuilder.toString());
}
} catch (Exception ex){
System.out.println("ex : " + ex.toString());
}
//--------------------------------------------------
System.out.println("\n");
System.out.println("종료 : HttpURLConnection사용 Get방식 Rest API 테스트 -----");
}
}
결과값이 정상적으로 오는 것을 확인할 수 있다.
이 데이터들을 어떻게 가공하고 사용할 것인지는 본인 몫에 달려있다.
'programming > OpenApiDEV' 카테고리의 다른 글
업비트 api 0002 파라미터 전달하여 인증토큰 요청하고 받기 (0) | 2021.06.23 |
---|---|
업비트 api 0001 파라미터 없는 경우 인증토큰 요청하고 받기 (0) | 2021.06.21 |
오픈 api 신청 금융감독원 금융상품통합비교 금융상품한눈에 (0) | 2021.03.09 |
댓글