API 문서: https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15043378
코로나19가 끝날기미는 커녕 다시금 확산되고 있어
이전까지는 관심밖이였던 시도별 현황을 수집하고, 요즘엔 거의 쓸일없는 마스크앱에
시도별로 layer를 씌워볼까? 라는 쓸데없는생각을 가지고
데이터 제공처를 물색중 발견한 보건복지부 시도별 현황 API
등록일이 4월이니 그리 오래된건 아닌듯 하다
댓글을 보니.. 왜 3월전 데이터는 제공안하냐는...?
서비스 키 인증안된다는 댓글이 무려 2개나 있는걸보니.. 관리를 안하는 걸지도..
서비스 신청하고 5분쯤 있다 테스트를 해보니, 오류는 안나는걸보니 뭔가 싶기도..
편의상 제공되는 문서를 기준으로 작성
분명 문서, 웹에 [O] JSON 체크가 되있는데, 어떻게 쓰라고는 없다
웃긴건 url은 Json인데 xml을 반환..해준다
(좌) XML / (우) JSON
jsonView를 브라우저에 설치하면 깔끔하게 볼수 있다
&_type=json을 추가하면 json으로 반환해준다
기상청 날씨정보 API에서 썼던건데 혹시나 해서 해보니 되는게 더 신기하다..
번호 |
API명(국문) |
상세기능명(영문) |
상세기능명(국문) |
1 |
보건복지부_코로나19시도발생_현황 조회 서비스 |
Covid19SidoInfStateJson |
코로나19시도발생_현황 조회 서비스 |
항목명(영문) |
항목명(국문) |
항목크기 |
항목구분 |
샘플데이터 |
항목설명 |
serviceKey |
인증키 |
100 |
1 |
인증키 (URL Encode) |
공공데이터포털에서 발급받은 인증키 |
numOfRows |
한 페이지 결과 수 |
4 |
1 |
10 |
한 페이지 결과 수 |
pageNo |
페이지 번호 |
4 |
1 |
1 |
페이지 번호 |
startCreate_dt |
데이터 생성일 시작범위 |
15 |
0 |
20200410 |
검색할 생성일 범위의 시작 |
endCreateDt |
데이터 생성일 종료범위 |
15 |
0 |
20200410 |
검색할 생성일 범위의 종료 |
항목명(영문) |
항목명(국문) |
항목크기 |
항목구분 |
샘플데이터 |
항목설명 |
resultCode |
결과코드 |
2 |
1 |
00 |
결과코드 |
resultMsg |
결과메세지 |
50 |
1 |
NORMAL SERVICE |
결과메시지 |
numOfRows |
한 페이지 결과 수 |
4 |
1 |
10 |
한 페이지당 표출 데이터 수 |
pageNo |
페이지 수 |
4 |
1 |
1 |
페이지 수 |
totalCount |
전체 결과 수 |
4 |
1 |
2 |
전체 결과 수 |
SEQ |
게시글번호(국내 시도별 발생현황 고유값) |
30 |
1 |
1014 |
게시글번호(국내 시도별 발생현황 고유값) |
CREATE_DT |
등록일시분초 |
30 |
1 |
2020-04-10 11:17:34.589 |
등록일시분초 |
DEATH_CNT |
사망자 수 |
15 |
1 |
0 |
사망자 수 |
GUBUN |
시도명(한글) |
30 |
1 |
검역 |
시도명(한글) |
GUBUN_CN |
시도명(중국어) |
30 |
1 |
隔離區 |
시도명(중국어) |
GUBUN_EN |
시도명(영어) |
30 |
1 |
Lazaretto |
시도명(영어) |
INC_DEC |
전일대비 증감 수 |
15 |
1 |
4 |
전일대비 증감 수 |
ISOL_CLEAR_CNT |
격리 해제 수 |
15 |
1 |
349 |
격리 해제 수 |
QUR_RATE |
10만명당 발생률 |
30 |
1 |
- |
10만명당 발생률 |
STD_DAY |
기준일시 |
30 |
1 |
2020년 04월 10일 00시 |
기준일시 |
UPDATE_DT |
수정일시분초 |
30 |
1 |
null |
수정일시분초 |
문서와 실제 응답 항목개수, 항목명이 안맞는다..
항목명은 Camel case로 변경되니, 문서와 웹페이지에 써있는건 DB 컬럼명을 그대로 쓴거같다…
numOfRows 으로 페이지당 데이터수를 조절할수 있어야 하는데…
전체건수를 한페이지에 불러온다.. 뭐지…
페이지4를 넣어도 전체건수가 나오니
전체 페이지수 = roundup(전체건수 / 페이지당 건수) 인데 의미가 없다…
전체 데이터를 받아오려고 20200101 ~ 현재날짜를 조회 했더니
3월 2일부터 데이터를 제공한다, 데이터 생성일이 3/2인듯
<item> <createDt>2020-07-09 10:35:10.331</createDt> <deathCnt>0</deathCnt> <defCnt>809</defCnt> <gubun>검역</gubun> <gubunCn>隔離區</gubunCn> <gubunEn>Lazaretto</gubunEn> <incDec>5</incDec> <isolClearCnt>606</isolClearCnt> <isolIngCnt>203</isolIngCnt> <localOccCnt>0</localOccCnt> <overFlowCnt>5</overFlowCnt> <qurRate>-</qurRate> <seq>2876</seq> <stdDay>2020년 07월 09일 00시</stdDay> <updateDt>null</updateDt> </item> |
출처 : http://ncov.mohw.go.kr |
createDt 는 그렇다고 치고..
stdDay는 왜 년/월/일/시 문자가 들어가는걸까.. 싶은데 심지어 00시
모든 기준일시는 00시가 들어가있다..
그리고 수정일시는 전부 null
데이터 갱신주기는 시간당이고, 신규데이터는 00시에 나오는듯하니 24번 수집하면 될것 같다
이제 문서에 없는 항목을 보자..
11개의 항목을 받아와야 하는데 15개가 된다
유추를 해보면
- defCnt: 809, 누적 확진환자
- isolIngCnt: 203, 격리중
- localOccCnt: 0 ??
- overFlowCnt: 5, 초과? -> 전일대비 증감? <확실치 않으니 다른지역도 확인
<item> <createDt>2020-07-09 10:35:10.33</createDt> <deathCnt>2</deathCnt> <defCnt>149</defCnt> <gubun>대전</gubun> <gubunCn>大田</gubunCn> <gubunEn>Daejeon</gubunEn> <incDec>6</incDec> <isolClearCnt>61</isolClearCnt> <isolIngCnt>86</isolIngCnt> <localOccCnt>6</localOccCnt> <overFlowCnt>0</overFlowCnt> <qurRate>10.11</qurRate> <seq>2864</seq> <stdDay>2020년 07월 09일 00시</stdDay> <updateDt>null</updateDt> </item> |
출처: http://ncov.mohw.go.kr |
defCnt: 149
isolIngCnt: 86
localOccCnt: 6, 국내발병
overFlowCnt: 0, 해외유입 <- 대전을 보니 알수가 없다, 다른지역을 봐도 알수가 없다... 일단 패스
이제 geojson 으로 Map에 정보를 출력해주도록 구현하면 된다
문제(?)는 시도코드를 제공했으면 편하게 끝났을텐데, 없으니
영문/국문 시도명으로 시도코드를 찾아주도록 한번 작업을 더해줘야 한다
아니면 그냥 영문/국문명에 해당하는 폴리곤으로 매칭해도 되겠지만...
시군구/읍면동 단위도 있는지 찾아봐야겠다
보건복지부 홈페이지 들어가서 추가 확진자 수 찾아보던일이 줄어들것 같긴하지만.. 언제 할진 미지수...
[programing/API] - 공공데이터API - 보건복지부_코로나19 감염_현황
[programing/API] - 공공데이터API - 보건복지부_코로나19 연령별·성별감염_현황
공공데이터API - 보건복지부_코로나19해외발생_현황 (0) | 2020.07.14 |
---|---|
공공데이터API - 보건복지부_코로나19 연령별·성별감염_현황 (0) | 2020.07.14 |
공공데이터API - 보건복지부_코로나19 감염_현황 (2) | 2020.07.14 |
공공데이터API - 한국천문연구원 특일 정보(공휴일, 국경일) (0) | 2020.04.26 |
공공데이터API - 전국 약국 정보 조회 (약국 FullData 내려받기) (0) | 2020.04.21 |
댓글 영역