-
OpenApi(낚시터) 스프링부트와 연결하기 2(스프링부트로 불러오기)SpringBoot/오픈Api연결하기(낚시터) 2020. 12. 28. 22:57
이 전 포스팅에서 승인된 Api를 사용해 스프링부트와 연결하고 H2데이터베이스에 삽입해보겠습니다.
OpenApi(낚시터) 스프링부트와 연결하기 1(Api 활용신청)
공공데이터 포털에서 제공해주는 OpenApi인 전국 낚시터 정보 표준 데이터를 스프링부트와 연동해보도록 하겠습니다. 우선 www.data.go.kr/index.do 공공데이터 포털 국가에서 보유하고 있는 다양한 데
tjdans.tistory.com
Api에서 데이터를 확인하기 위해 RestController를 하나 생성합니다.
컨트롤러 매핑할 url은 원하시는대로 작성해주시면 되고
String urlStr의 첫 부분을 신청한 OpenApi의 EndPoint를 넣어줍니다.
끝 부분에 " ? "를 삽입해주세요.
이 후의 파라미터를 살펴보면
serviceKey= 저는 지워놔서 비어보이지만 이 부분에 마찬가지로 신청한 Api의 serviceKey를 넣어줍니다.
pageNo= 표시할 페이지번호
numOfRows=표시할 데이터의 수
type= xml 혹은 json 원하는 방식으로 리턴하게 합니다. (xml이나 json만을 지원하는 것도 있음)
url(urlString)으로 url을 생성하고
설정 작업을 마친 후
url을 통해 받아온 json코드를 StringBuilder인 result에 담은 뒤에
urlConnection.disconnect()로 연결을 끊어주고
return result.toString()이 동작하게 된다면
주소창에 localhost:8080/api를 입력했을 때
이런 화면이 나온다면 데이터를 받아오는것이 완료되었습니다.
하지만 이 데이터들을 사용하려면 가공을 해야하기 때문에 JSON-parsing을 해야합니다.
많은 JSON 라이브러리가 있지만, 저는 간편한 json-simple이란 라이브러리를 사용합니다.
build.gradle에 들어가서
dependencies에 마지막줄인 complie ~~을 작성하고 그레이들을 reload합니다.
적용이 되었는지 확인하신 후에 파싱을 진행합니다.
저는 Controller에서 데이터를 받아오고, 그 데이터를 String으로 서비스에 넘겨 서비스에서
데이터베이스에 삽입하게 작성했습니다.1.
Controller에서 넘어온 result.toString()인 jsonData를 JSONParser를 통해 분해하는 과정입니다. 2.
분해한 데이터를 배열에 담아, 생성해놓은 도메인에 맞추어 H2데이터베이스에 Jpa를 이용해 삽입하는 과정입니다. 모든 작업이 완료되고 난 후, H2 콘솔창으로 들어가 확인해보았을 때
h2 위 사진처럼 데이터들이 저장된걸 확인할 수 있습니다.
이상으로 OpenApi를 SpringBoot와 연결해 H2데이터베이스에 삽입하는 포스팅을 마치겠습니다.
'SpringBoot > 오픈Api연결하기(낚시터)' 카테고리의 다른 글
OpenApi(낚시터) 스프링부트와 연결하기 1(Api 활용신청) (0) 2020.12.28