일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- listview
- 지하철api
- 선형레이아웃
- 트렐로 삭제
- androidstudio
- 클린코드
- 사용자폴더
- java
- 데이터바인딩
- 윈도우10
- 부스트코스
- 부스트캠프
- 노개북
- 북클럽
- 백준
- github
- Android
- 안드로이드
- activity
- CS50
- codility
- 노마드북클럽
- Node.js
- BOJ
- 알고리즘
- Windows10
- RecyclerView
- 액티비티
- 노마드코더
- CardView
- Today
- Total
Be Developer
공공데이터 api 사용기 본문
개인 프로젝트 중 지하철 관련 부분이 있어서 공공데이터 api를 사용해야 했는데 그 과정에서 겪은 일들을 공유하고자 한다.
처음 데이터를 가져오는 부분부터 고생을 했는데 샘플코드대로 코딩을 해도 데이터가 안나와서 고생했다.
개발가이드도 봤는데 내가 보기에는 그리 친절한 편은 아니었고(...)
결국 문의 남겨서 올바른 URL을 받아 그대로 했더니 데이터 가져오는데 성공했다.
내가 사용한 api는 지하철정보서비스이고 그 중에서도 키워드기반 지하철역 목록 조회를 사용했다.
URL의 구성은 이렇다.
http://openapi.tago.go.kr/openapi/service/SubwayInfoService/getKwrdFndSubwaySttnList?subwayStationName=[검색어]&ServiceKey=[서비스키]&_type=json&numOfRows=[row숫자]&pageNo=[page숫자]
1. (필수) 검색어는 UTF-8 인코딩해서 넘겨야한다.
2. (필수) 서비스키는 직접 공공데이터포털에서 해당 api의 활용신청을 통해 얻은 서비스키를 넣는다.
3. (선택) 기본 데이터는 xml로 제공된다.
나는 json으로 데이터를 받아오길 원해서 &_type=json을 사용했다.
4. (선택) numOfRows는 한번에 받아오는 row를 뜻한다. 기본값은 10이다.
5. (선택) pageNo는 row로 받아온 데이터의 현재 page를 뜻한다. 기본값은 1이다.
다른 page의 값을 가져오고 싶다면 이 숫자를 바꾸면 되는데
주의해야 할 점은 numOfRows도 함께 입력해야한다.
기본값인 10을 사용해도 입력해야한다.
그리고 api를 사용하면서 내가 필요했던 데이터는 지하철역명과 노선명이었는데 개발가이드에는 있었지만 노선명이 호출되지 않았다.
결국 문의를 했고 담당자분과 전화까지 하게 됐었다.
오늘 답변을 받았는데 원래 계획에 올라가 있던게 아직 개발이 안된 상황이었다고.....
적용해뒀으니 확인해보시라는 답변을 받았다. 주말 근무 하신 건 아니겠지(...)
아무튼 지하철 api를 사용해서 개발은 했으나 속도가 느려서 Retrofit을 사용해야 할 것 같다.
'Android' 카테고리의 다른 글
[Android] 액티비티의 구성 변경 처리와 조정 (0) | 2019.04.29 |
---|---|
[Android] 액티비티 상태 저장 (0) | 2019.04.29 |
[Android] 액티비티 생명 주기(Activity Life Cycle) (0) | 2019.04.29 |
[Android] 액티비티의 생성, 선언, 시작, 종료 (0) | 2019.04.29 |
[Android] 액티비티(Activity)와 백 스택(Back Stack) (0) | 2019.04.29 |