2020/07/08 부로 공적마스크 판매가 중지되고
2020/07/11 부로 API가 종료됨에 따라
서비스가 종료되었습니다
이용해주셔서 감사합니다
해당 API를 가지고 지도 중앙기준으로 판매점을 조회 하도록 기능을 구현해봄
내주위 공적마스크 판매현황 조회: http://koronavi.kro.kr/
문제는 geolocation 기능을 사용하려면 https(ssl)을 적용해야되는데내도메인.한국에서 받은 도메인에 단일페이지 웹으로 해놔서 ssl을 적용할 수 가 없다아마존 aws 라도 써봐야하나...
단일페이지 웹으로, 어떠한 정보도 수집하지 않고, 광고(홍보)도 없음, 다만 데이터만 사용, 쿠키도 안써서
접속할때마다 위치허용 해줘야하고, 알람창이 계속뜸...
참고로, 판매처가 없습니다 와
재고가 없습니다 라는 알람이 있는데
말그대로인데 왜 주위에 판매처가 없지? 라는
문의를 받음... 흠...
이번기회에 webview 만 쓰긴할건데
안드로이드마켓에 앱을 등록해보려고 개발자 등록($25)도 함...
네이버클라우드를 이용 서버&공인IP 를 받고, sslforfree 에서 ssl 키를 발급받아서 https를 사용할 수 있게 변경,
기존에는 google map api 비용(?) 정도만 발생했는데, 서버&공인IP 비용까지 발생하는 사태...
네이버맵은 무료로 보이니 지도를 네이버맵으로 변경하려는중...
시간일때 정이해서 포스팅예정..
네이저클라우드, sslforfree, google map api 정도
네이버 지도에 공적마스크 조회 기능이 추가된걸보고 찾아보니 역시나 오픈되있다
근데 덕분에 지도가 느려지는게 불편하던 차에 API에서 필요한것만 불러다 보면 편할듯 하다
급하게 만든거라 그런지 문서도 단촐하지만 그래도 오픈해주는게 어딘가...
박근혜정부가 잘한건 진짜 정부 3.0 공공데이터 오픈 인것 같다
쓸데없는 NCS는 없어졌으면 좋겠다...
인증도 필요없이 사용가능하다
참고문서
URL: https://www.data.go.kr/commonUser/fileDownload.do?atchFileId=FILE_000000001609688&fileDetailSn=0
건강보험심사평가원에서 제공하는 마스크 정보(판매처별 입고량, 판매량 등)를 공공데이터활용지원센터에서 오픈API형태로 제공하고 있습니다. 참고문서 : https://app.swaggerhub.com/apis-docs/Promptech/public-mask-info/20200307-oas3#/
/storesByAddr/json: get: tags: - v1 description: 주소를 기준으로 해당 구 또는 동내에 존재하는 판매처 및 재고 상태 등의 판매 정보 제공.<br/> 예- '서울특별시 강남구' or '서울특별시 강남구 논현동'<br/> ('서울특별시' 와 같이 '시'단위만 입력하는 것은 불가능합니다.) parameters: - in: query name: address description: 검색 기준이 될 주소 required: false schema: type: string responses: '200': description: default content: application/json: schema: $ref: '#/components/schemas/StoreSaleResult' |
수량 상태정보를 색상으로 표시할 경우 녹색(100개 이상)/노랑색(30~99개)/빨강색(2~29개)/회색(0~1개)을 준수해주시기 바랍니다.
출처: https://app.swaggerhub.com/apis-docs/Promptech/public-mask-info/20200307-oas3#/
문서의 링크에 들어가보면 판매현황조회 API 임을 나타내고
4개의 RestAPI END URL이 확인된다
URL: https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/
END URL |
설명 |
/stores/json |
약국, 우체국, 농협 등의 마스크 판매처 정보 제공 (마스크 재고 관련 정보는 제공하지 않음) |
/sales/json |
마스크 재고 상태 등의 판매 정보 제공(판매처 관련 정보는 제공하지 않음) |
/storesByGeo/json |
중심 좌표(위/경도)를 기준으로 반경(미터단위) 안에 존재하는 판매처 및 재고 상태 등의 판매 정보 제공 |
/storesByAddr/json |
주소를 기준으로 해당 구 또는 동내에 존재하는 판매처 및 재고 상태 등의 판매 정보 제공. 예- '서울특별시 강남구' or '서울특별시 강남구 논현동' ('서울특별시' 와 같이 '시'단위만 입력하는 것은 불가능합니다.) |
이중에 관심이 가는건 "/storesByGeo/json" 으로
현재 위치를 기준으로 반경안(5km 이내)에 재고상태를 알수 있다고 한다
내 위치 중심으로 반경을 그려서 해당하는 약국만 볼 수 있다는 소리인데
약국위치를 GIS DB에 저장하고 현재좌표로 마스크를 판매중인 약국 위치를 반환하도록 생각 중이였는데
그럴 이유가 없어졌다
스마트폰으로 GPS 좌표를 읽어와서 해당 URL로 호출해 주면 주변 판매처 정보를 알수 있다는 소리니 말이다
URL: https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/stores/json
전국 약국목록을 반환한다 페이지당 500개(Max 5000)의 약국을 제공하며 54page까지 있다
5,000개씩 조회하면 6페이지로 끝난다
Exam URL: https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/stores/json?perPage=5000&page=1
"addr": "서울특별시 강남구 영동대로112길 15, 103호 (삼성동, 풍림아파트상가)", "code": "11800011", "lat": 37.5155186, "lng": 127.0615148, "name": "부활약국", "type": "01" |
배열로 약국정보를 반환하며 별다른 검색기능은 없다
최초 약국정보 수집할때 쓰기에 적당한듯 하다
위경도를 포함하고 있으니 google map으로 위치를 바로 찍어줄 수 있어보인다
코드명 | 설명 |
code* | string, 식별 코드 |
name* | string, 이름 |
addr* | string, 주소 |
type* | string, 판매처 유형[약국: '01', 우체국: '02', 농협: '03'] |
lat* | number($float), 위도 |
lng* | number($float), 경도 |
단지 페이지로 판매처 코드와 상태정보를 반환해준다
URL: https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/sales/json
Exam URL: https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/sales/json?perPage=5000&page=1
"code": "31837492", "created_at": "2020/03/12 20:35:00", "remain_stat": "empty", "stock_at": "2020/03/12 13:59:00" |
URL: https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/storesByAddr/json
법정동을 기준으로 판매처 리스트를 반환해준다
Exam URL(대전 서구 둔산동): https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/storesByAddr/json?address=%EB%8C%80%EC%A0%84%EA%B4%91%EC%97%AD%EC%8B%9C%20%EC%84%9C%EA%B5%AC%20%EB%91%94%EC%82%B0%EB%8F%99
"addr": "서울특별시 강남구 영동대로112길 15, 103호 (삼성동, 풍림아파트상가)", "code": "11800011", "created_at": "2020/03/12 09:30:00", "lat": 37.5155186, "lng": 127.0615148, "name": "부활약국", "remain_stat": "empty", "stock_at": "2020/03/11 12:19:00", "type": "01" |
반환되는 데이터에는 remain_stat: empty 라고 적혀있는데 품절인가 했더니 1개부터는 empty 인가보다
코드명 | 설명 |
code* | string, 식별 코드 |
stock_at* | string($YYYY/MM/DD HH:mm:ss), 입고시간 |
remain_stat* | string, 재고 상태[100개 이상(녹색): 'plenty' / 30개 이상 100개미만(노랑색): 'some' / 2개 이상 30개 미만(빨강색): 'few' / 1개 이하(회색): 'empty'] |
created_at* | string($YYYY/MM/DD HH:mm:ss), 데이터 생성 일자 |
제일 관심을 가졌던 GPS 기준 위치조회기능을 테스트 해보았다
param |
설명 |
lat |
위도(wgs84좌표계) |
lng |
경도(wgs84좌표계) |
m |
반경(미터)/최대5000(5km) |
참고로 주변에 빨간색 마커들은 약국이다
대전광역시청(GPS): 36.350518, 127.384810
반경(m): 1000 (1km)
조회결과 |
{ |
근데… 안나온다
반경을 3km로 변경하니 공주시가 나오기 시작…
쓸만한건지 모르겠다
참고
https://www.data.go.kr/dataset/15043025/openapi.do
https://app.swaggerhub.com/apis-docs/Promptech/public-mask-info/20200307-oas3#/
공공데이터API - 한국천문연구원 특일 정보(공휴일, 국경일) (0) | 2020.04.26 |
---|---|
공공데이터API - 전국 약국 정보 조회 (약국 FullData 내려받기) (0) | 2020.04.21 |
기상청 OPEN API 35종 폐기 및 대체 서비스안내 (0) | 2020.02.01 |
공공데이터API - 전국문화축제표준데이터 (0) | 2018.09.11 |
공공데이터 API - 대전광역시 버스정보 4부(차량등록정보 조회 서비스, 운수회사 정보 조회 서비스) (0) | 2017.09.11 |
댓글 영역