상세 컨텐츠

본문 제목

[API폐지]공공데이터포털: 건강보험심사평가원 공적 마스크 판매 정보 / 공적 마스크 판매 현황 조회 API

programing/API

by ZelKun 2020. 3. 12. 10:28

본문

반응형

2020/07/08 부로 공적마스크 판매가 중지되고

2020/07/11 부로 API가 종료됨에 따라

서비스가 종료되었습니다

이용해주셔서 감사합니다


해당 API를 가지고 지도 중앙기준으로 판매점을 조회 하도록 기능을 구현해봄

내주위 공적마스크 판매현황 조회: http://koronavi.kro.kr/

 

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

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

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는 없어졌으면 좋겠다...

 

 

출처 :  https://www.data.go.kr/dataset/15043025/openapi.do

 

 

인증도 필요없이 사용가능하다

 

참고문서

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'


 

출처 :  https://app.swaggerhub.com/apis-docs/Promptech/public-mask-info/20200307-oas3#/

 

 

수량 상태정보를 색상으로 표시할 경우 녹색(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로 호출해 주면 주변 판매처 정보를 알수 있다는 소리니 말이다


판매처 위치조회 (/stores/json)

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), 경도

재고상태? (/sales/json)

단지 페이지로 판매처 코드와 상태정보를 반환해준다

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"

주소기준 판매처 위치 조회 (/storesByAddr/json)

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 좌표 반경 판매처 위치 조회 (/storesByGeo/json)

제일 관심을 가졌던 GPS 기준 위치조회기능을 테스트 해보았다

param

설명

lat

위도(wgs84좌표계)

lng

경도(wgs84좌표계)

m

반경(미터)/최대5000(5km)

 

출처: http://map.google.com

 

참고로 주변에 빨간색 마커들은 약국이다

 

대전광역시청(GPS): 36.350518, 127.384810

반경(m): 1000 (1km)

URLhttps://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/storesByGeo/json?lat=36.350518&lng127.384810&m=1000

 

조회결과

{
  "count": 0,
  "stores": []
}

근데… 안나온다

반경을 3km로 변경하니 공주시가 나오기 시작…

쓸만한건지 모르겠다

 

참고

https://www.data.go.kr/dataset/15043025/openapi.do

https://app.swaggerhub.com/apis-docs/Promptech/public-mask-info/20200307-oas3#/

 

반응형

관련글 더보기

댓글 영역