목차
- 오픈 API
- 오픈 API 받아오기
- DTO 생성
- Gson 사용하여 json을 java object로 변환
https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000755
국토교통부_국내항공운항정보
국내 항공운항정보에 대해 항공기정보, 항공사정보, 운임정보 등을 조회할 수 있다. 항공운항정보는 항공운항정보 목록, 공항목록, 항공사 목록조회가 가능하다.
www.data.go.kr
샘플 코드를 가져옵니다.
필수 값은 무조건 넣어야 하지만
필수 값이 아닌 것은 넣지 않아도 됩니다.
예를 들면 항공사라던지
가져온 코드
인증키 %3D
Eecoding 된 것을 넣어줍니다.
아래에 주석 처리된 것은 사용하지 않는 기능을 주석 처리한 것입니다.
이렇게 하고 컨트롤러에서
Exception 처리를 해주고 실행시켜주면
잘 동작합니다.
잘 받아진 모습
*
이런 것은 계속 요청을 하게 되면 부하가 심하기 때문에
개인 서버로 데이터를 받아서 개인 서버에 클라이언트가 접속하도록 합니다
*
아래와 같이 보여주게 되는데
불편합니다.
json 객체로 받아오게 다음과 같이 url뒤에 추가해줍니다.
url추가를 위해서 한 줄을 추가해줍니다.
이제 json 오브젝트를 자바 오브젝트로 파싱 해봅니다
return을 String으로 하게 해서 이것을 Java class로 파싱 해봅니다.
그러기 위해서 DTO를 만들어서 이 json 데이터를 받아옵니다.
Sysout 된 것을 복붙 한 것입니다
이런 식으로 요소를 분석해서 DTO를 구성하는 클래스를 만들어줍니다.
또 다른 편한 방법으로는 jsonschema2pojo 사이트에 가서
아까 받아온 한 줄을 붙여 넣기 해보는 방법이 있습니다.
이렇게 하면 편하게 자동적으로 만들어줍니다.
https://www.jsonschema2pojo.org/
jsonschema2pojo
Reference properties For each property present in the 'properties' definition, we add a property to a given Java class according to the JavaBeans spec. A private field is added to the parent class, along with accompanying accessor methods (getter and sette
www.jsonschema2pojo.org
이제 이것을 사용해서 만들어줍니다.
전체를 복사해서 DTO class에 넣어줍니다.
총 200줄이네요
넣어주고 중간중간에 여러 줄이나, public으로 된 것을 지워줍니다.
import도 중복된 것도 지워주고요.
이렇게만 하면 DTO가 완성입니다.
공공데이터를 쓸 때 DB에 어느 정도 가져올지 생각을 해야 합니다.
이제 Dto를 만들었고
구글에서 나온 gson을 사용해서 json 데이터를 java object로 변환해봅시다.
pom.xml에 추가
추가한 Gson을 사용해봅시다.
Gson 객체의 인스턴스인 gson을 만들고
그 gson안에 있는 여러 메서드 중에
json 객체를 자바 object로 변환해서 AirportDto 타입인 airportDto에 넣어줍니다.
(result를 AirportDto형태로 만들어줍니다)
위에 return 데이터로 String으로 되어있는데
AirportDto로 바꿔줍니다.
완성된 모습
또 다르게 저렇게 보고 싶은 데이터를 분석해서 저것만 보여주게 할 수도 있습니다.
'Programming' 카테고리의 다른 글
[JavaScript]JS for Springboot[자바스크립트 정리] (0) | 2021.07.20 |
---|---|
[API,SDK]Sms Service 구현 (1) | 2021.07.12 |