공공데이터가 필요할때 API를 가져와서 쓰는법을 작성하려고한다.
이번 테스트할 공공데이터서비스 기관은 여기
이곳에서 데이터를 가져오면
회원가입 및 API키를 발급받아야한다.
API키 없이 sample로 호출할수는있다.
하지만 sample은 데이터 갯수가 5개만 지원하기에 이왕 하는거 API키 발급받고 전부 가져오자.
https://data.seoul.go.kr/together/guide/useGuide.do
회원가입을하고 , 인증키를 신청하자.
이 사이트는 친절하게 아래에 언어마다 URL 신청하는 법을 다 적어놓으셧다. (격한 감사)
복사 붙이기하고 고칠부분만 고치면된다.
https://data.seoul.go.kr/together/mypage/actkeyMng_ss.do
인증키 받았으면 받고싶은 데이터를 검색해서 쓰자
필자는 지하철 실시간 도착정보를 받아보려고한다.
요청인자는 key , type , service ,start_idx, end_idx, statnNm 이다
key~ end_idx는 기본 양식이고
statnNm 지하철역명은 이 서비스만 갖는 고유한 인자이다.
그대로 코드를 복사하고 고칠부분만 고쳤다
첫번째 기본 URI는 내가 받고싶은 지하철도착정보의 기본 uri
두번째는 인증키
세번째는 JSON으로 바꿧고
네번째는 지하철도착정보의 서비스 이름
다섯번째 ,여섯번째는 페이징넘버다. 처음부터~100페이지까지 출력해봤다.
앞에서 json으로 받기로했으니, Content-type도 json으로 바꿧다.
프로젝트를 실행하고 localhost:8080/api를 호출해보면
추가로 여기서 서버데이터를 JSON으로 변형하고싶다면
JSON파서코드를 짜면된다.
https://mvnrepository.com/artifact/org.json/json
여기서 JSON 파싱 라이브러리를 다운받아준다.
StringBuldir의 결과값을 문자열로 바꾼뒤, JSONObject로 바꾼다.
그 후, 여기서부턴 JSON의 키값을통해 데이터를 뽑으면된다.
필자는 일단, 실시간정보가 담긴 "realtimeArrivalList" 키값을뽑아 출력해보았다.
잘나온다!
근데 엄청난 데이터 컬럼수다.. 여기서 내가 받고싶은 정보를 얻고싶으면
또 JSON KEY를통해 데이터를 뽑아야한다.
이게 무슨데이터야 할땐 역시 API 출력인자를 다 설명해주셧다.
API센터찾아가 설명서를 본 뒤, 내가 뽑고싶은 키를 뽑아서 사용하면된다.
--------------------------------------------------------------------------------------------
프론트서버와 백엔드서버의 통신
MSA의 서버간의 통신 등등
다양하게 사용할수있는 코드다.
물론, 데이터의 요청헤더와 출력값에따라 내용이 많이 바뀌어야하지만, 기본 틀은 동일하다.
'자바 > 스프링(Spring)' 카테고리의 다른 글
Intelij 에서 Mysql테이블 확인 및 쿼리쓰기 (0) | 2023.06.14 |
---|---|
Spring security : JWT 토큰 인증 / 인가 적용하기 (0) | 2023.04.11 |
Spring Eureka (스프링 유레카) 간단 실습 및 예제 (0) | 2023.03.28 |
Spring Cloud Gateway 간단실습 및 이해 (0) | 2023.03.27 |
스프링(Spring) 테스트 환경에서 @PostConstruct 비활성화 (0) | 2022.10.12 |