상세 컨텐츠

본문 제목

공공데이터API - 전국 약국 정보 조회 (약국 FullData 내려받기)

programing/API

by ZelKun 2020. 4. 21. 00:37

본문

반응형

https://www.data.go.kr

전국 약국 정보 조회 서비스: https://www.data.go.kr/dataset/15000576/openapi.do

공적마스크 웹을 쓰다보니 불편한게 생겼다

바로.. 평일에 구입을 못하면 토요일에 가하는데

재고가 많다고 해서 갔더니 약국이 문을 닫는 경우...

그래서 검색하다보니

https://pharm114.or.kr

휴일지킴이 약국: https://pharm114.or.kr

참고로 대한약사회에서 제공하는 휴일지킴이약국 이란 사이트도 있다

당번약국 조회하기에는 여기가 편할 듯


당번약국조회하려는게 아니니 API를 통해 약국 운영시간을 마스크웹에서 확인할 수 있게 해보기로 했다

참고문서: NIA-IFT-OpenAPI활용가이드-01.국립중앙의료원-약국정보조회서비스.hwp

 

상세기능정보

NO 상세기능 설명 일일 트래픽
1 약국 FullData 내려받기 전체 약국의 진료요일 등의 정보를 조회하는 약국 FullData 내려받기 기능제공 1000000
2 약국별 기본정보 조회 약국별 상세정보를 조회할 수 있다. 1000000
3 약국 위치정보 조회 약국 위치정보를 경도/위도별 반경내 정보를 조회할 수 있다. 1000000
4 약국 목록정보 조회 약국 정보를 시도/시군구/진료일자별 조회할 수 있다 1000000

위치정보를 이용해서 마스크 재고API 호출할때 같이 쓰면 될까 했는데

CORS(Cross-Origin Resource Sharing) 정책 위반이라고 안된다

JSONP를 쓰면 XML로 응답이 오니까 에러가 발생한다

편법의 편법을 쓰면 사용하는데는 문제없겠지만...

일단 데이터를 수집해보기로

No 서비스명(국문) 서비스명(영문)
1 약국 FullData 내려받기 getParmacyFullDown
2 약국별 기본정보 조회 getParmacyBassInfoInqire
3 약국 위치정보 조회 getParmacyLcinfoInqire
4 약국 목록정보 조회 getParmacyListInfoInqire

1. 약국 FullData 내려받기

요청변수(Request Parameter)

항목명(국문) 항목명(영문) 항목크기 항목구분 샘플데이터 항목설명
서비스키 ServiceKey 4 옵션 - 공공데이터포털에서 받은 인증키
페이지 번호 pageNo 4 옵션 1 페이지번호
한 페이지 결과 수 numOfRows 4 옵션 10 한 페이지 결과 수

 

출력결과(Response Element)

항목명(국문) 항목명(영문) 항목크기 항목구분 샘플데이터 항목설명
결과코드 resultCode 2 필수 00 결과코드
결과메시지 resultMsg 50 필수 OK 결과메시지
한 페이지 결과 수 numOfRows 4 필수 10 한 페이지 결과 수
페이지 번호 pageNo 4 필수 1 3
전체 결과 수 totalCount 4 필수 3 전체 결과 수
일련번호 rnum 10 필수 1 item 번호
주소 dutyAddr 200 필수 서울특별시 강남구 일원동50 (일원로81) 주소
비고 dutyEtc 200 옵션 외래진료시간은 진료과목별 운영 비고
기관설명상세 dutyInf 300 옵션 - 기관설명상세
간이약도 dutyMapimg 100 옵션 - 간이약도
기관명 dutyName 100 필수 (사)삼성생명공익재단 삼성서울병원 기관명
대표전화1 dutyTel1 14 필수 02-3410-2114 대표전화1
진료시간(월요일)C dutyTime1c 4 옵션 1530 진료시간(월요일)C
진료시간(화요일)C dutyTime2c 4 옵션 1530 진료시간(화요일)C
진료시간(수요일)C dutyTime3c 4 옵션 1530 진료시간(수요일)C
진료시간(목요일)C dutyTime4c 4 옵션 1530 진료시간(목요일)C
진료시간(금요일)C dutyTime5c 4 옵션 1530 진료시간(금요일)C
진료시간(토요일)C dutyTime6c 4 옵션 1530 진료시간(토요일)C
진료시간(일요일)C dutyTime7c 4 옵션 1530 진료시간(일요일)C
진료시간(공휴일)C dutyTime8c 4 옵션 1530 진료시간(공휴일)C
진료시간(월요일)S dutyTime1s 4 옵션 0830 진료시간(월요일)S
진료시간(화요일)S dutyTime2s 4 옵션 0830 진료시간(화요일)S
진료시간(수요일)S dutyTime3s 4 옵션 0830 진료시간(수요일)S
진료시간(목요일)S dutyTime4s 4 옵션 0830 진료시간(목요일)S
진료시간(금요일)S dutyTime5s 4 옵션 0830 진료시간(금요일)S
진료시간(토요일)S dutyTime6s 4 옵션 0830 진료시간(토요일)S
진료시간(일요일)S dutyTime7s 4 옵션 0830 진료시간(일요일)S
진료시간(공휴일)S dutyTime8s 4 옵션 0830 진료시간(공휴일)S
기관ID hpid 10 필수 A0000028 기관ID : 동일테이블에 기관명을 포함하고 있음
우편번호1 postCdn1 3 필수 135 우편번호1
우편번호2 postCdn2 3 필수 750 우편번호2
병원경도 wgs84Lon 30 필수 127.0851566 병원경도
병원위도 wgs84Lat 30 필수 37.48813256 병원위도

결과값 항목이 매우 많다

근데 이상하게도 현재페이지는 반환하면서 전체 페이지 수는 안준다

페이지결과수 / 전체건수로 잔여페이지수를 계산 해야한다

게다가 옵션값들은 응답 XML에 포함되지 않는 경우가 존재하니

XML 파서를 이용하면 에러가 날수 있으니 그부분도 신경써줘야 한다...

 

약국정보를 이용한건 좋은데 아무래도 관리주체가 다르니 코드가 다른건 어쩔수 없는듯 하다...

대충 20만건정도? 약국 운영시간을 확인 할 수 있도록 해봤는데

현재위치를 가지고 시도에 해당하는 json 파일로 불러오도록 했는데 이것도 일이다...

 

http://koronavi.kro.kr 

 

내주위 공적마스크 판매처 위치정보 조회

내주위 코로나19(COVID-19) 공적마스크 판매처 정보를 지도로 제공합니다, 위치기반으로 수량이 남은 판매처만 볼수 있습니다

koronavi.kro.kr

 

반응형

관련글 더보기

댓글 영역