● 요약
API 사용법과 정류장에 도착하는 버스 정보를 얻는 프로그램을 만들기 전, 그 큰 틀과 진행 방향에 대한 글.
코드 및 프로그램 자체에 대한 설명은 다음 편(https://senticoding.tistory.com/46)에 적겠습니다.
● 버스 도착 정보를 얻기 위한 진행 방식
* 예제는 어느 한 정류장의 버스 도착정보들을 얻는 것을 목표로 한다.
1. 정류장이름 혹은 번호으로 정류장id를 찾는다.
2. 얻은 정류장 id를 통해 그 정류장에 도착하는 버스들의 도착 정보를 얻는다
( 허나 이 도착정보 중 각각의 버스는 routeId라는 변수를 이용해 표현되어있어
바로 어떤 버스인지는 알아볼 수 없다. )
3. routeId를 routeName 즉 버스 번호로 바꾸는 과정을 거친다.
● 필요한 API 목록
공공데이터포탈 홈페이지(https://www.data.go.kr/) -> 데이터셋 -> 아래 API들 검색
을 통해 API 이용 신청을 하면 됩니다.
- 정류소 조회 서비스
- 버스 노선 조회 서비스
- 버스 도착 정보 조회 서비스
* 주의 api신청 후 한 두세시간 뒤에 승인이 나는 것 같았습니다.
충분한 시간이 지나기 전에 api를 요청하면 오류가 날 거예요
(아마 Authentication rejected라거나 그런 거 였던 것 같음.)
● 예제
예를 들어 경희대학교에 도착하는 버스 정보를 얻는 예제를 만들어보겠습니다.
정류장의 이름을 찾아봅시다. 번호를 입력하는 게 더 정확하긴해요
▲ 정류소 정보가 04-241이라고 나와있는데, 이제 04241이라고 api에 query로 전달해주면 됩니다.
▲ "정류소 조회 서비스" api의 "정류소명/번호 목록 조회"와 얻었던 정류소 번호를 이용해 미리보기로 잠시 확인해본 모습.
해당 정류장의 stationId를 얻을 수 있음을 알 수 있다.
▲ "버스 도착 정보 조회 서비스" api의 "버스 도착 정보 목록 조회"와 stationId를 이용해 해당 정류장에 도착하는 버스에 대한 정보를 알 수 있다. (api 페이지에서 미리보기를 눌러 확인 가능)
predictTime1, predictTime2가 도착 예상 시간입니다!
▲ 도착 정보로 뜬 버스 목록 중 하나인 routeId 200000010 버스의 routeName을 얻어보겠습니다.
"버스 노선 조회 서비스" api의 "노선 정보 항목 조회"와 routeId를 이용해 해당 버스의 routeName을 얻을 수 있습니다. (api 페이지에서 미리보기를 눌러 확인 가능)
routeId 200000010 은 900번 버스를 의미하는 것이었네요.
사실 위의 과정까진 코딩은 필요없었습니다.
그냥 버스 도착 정보를 얻기 위한 과정에 대한 설명이었고 이제 코딩으로 넘어가는 부분은 아래 링크에서 다루겠습니다.
[오픈 API] nodejs를 이용해 버스 도착 정보 얻기 - 2. 코드
'Node.js' 카테고리의 다른 글
[오픈 API] nodejs를 이용해 버스 도착 정보 얻기 - 2. 코드 (0) | 2019.02.24 |
---|---|
내부함수에서 외부함수로 리턴값 전달하기, 프로미스 리턴하기 (0) | 2019.01.20 |
프론트엔드 예제 블로그 만들기 (0) | 2019.01.05 |
[nodejs] 학식 카톡봇 예제 (0) | 2018.10.06 |
Node js로 유튜브 동영상 다운로드 받기 (0) | 2018.10.02 |