프로젝트 개요
강남가는 직행버스의 기점 근처에 살고있는데, 운수업체로부터 받은 시간표가 하나도 맞지 않아 버스가 출발할 때마다 알림도 오고 시간표도 작성해주는 서비스를 만들려고 한다. 기점에서 버스가 출발하자마자 집에서 나가면 시간이 딱 맞기 때문이다.
미리 나가서 기다리면 되지 않는가?
배차시간이 극과 극이다.
운수 업체로부터 받은 시간표는 일부 맞는 것도 있지만 비슷한 시간에 미리 나가봤다가. 버스가 저 멀리 떠나가는 상황이 너무 많았다.
그래서 기점에서 버스가 출발 할 때마다 새로운 시간표에 출발 시간을 기록해주고, 나는 그 시간표를 기준으로 버스를 이용할 예정이다.
공공 데이터 API 사용 준비
서비스에 필요한 정보는 아래와 같다.
- 버스노선 조회 서비스
- 정류소 조회 서비스
위의 링크를 통해 공공 데이터 포털을 접속할 수 있고, 각각 서비스에 대한 활용신청을 하면 아래와 같이 바로 승인이 완료된다.
API 호출해보기
노선정보조회
내가 필요한 노선번호는 6004번 버스다.
제공된 서비스의 엔드포인트로 인증키와 노선번호(6004)를 쿼리파라미터로 작성해서 포스트맨으로 먼저 호출해보자.
위와 같이 정상적으로 노선에 대한 정보들이 반환됐다. 여기서 필요한건 노선번호를 가리키는 routeId 234000314 9글자다.
경유정류소목록조회
기점의 버스 정류장 정보도 필요하다. 기점에서 버스가 출발하면 시간표에 자동으로 작성하기 위해서다.
제공된 서비스의 엔드포인트로 인증키와 노선ID(234000314)를 쿼리파라미터로 작성해서 포스트맨으로 호출한다.
위와 같이 경유정류장들의 정보들이 반환됐다. 일단 나는 기점 정류장의 정보만 필요하다. stationId 233001447 9글자다.
버스위치목록조회
노선ID에 해당하는 노선의 실시간 위치를 가져오는 서비스다. 실시간으로 버스가 기점정류장에 있다면 알림을 해주기 위해서 필요하다.
제공된 서비스의 엔드포인트로 인증키와 노선ID(234000314)를 쿼리파라미터로 작성해서 포스트맨으로 호출한다.
실시간으로 운행중인 버스의 목록이 반환된다. 여기서 stationSeq은 정류소 순번을 나타낸다. (기점 : 1)
따라서 출발한 버스의 stationSeq이 1이거나 stationId가 기점의 정류장ID와 동일하면, 그 시간을 시간표에 작성하고 나에게 알림이 오게 구현하면 된다.