728x90
반응형
공공데이터를 자주 보게 되면서 필요한 API를 찾아서 정보를 제공하는 아이템을 개발하고 있다
이번에는 공공데이터 중 보건복지부에서 제공하는 코로나 API를 개발한 정보를 제공하려고 한다.
제공 정보는 API를 통해서 호출 하는 정보까지만 표시하는 JAVA 소스 이다.
공공데이터 URL은 https://www.data.go.kr/
보건복지부 코로나19 시도발생 현황
URL은 www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15043378
위의 URL에 가면 요청 변수 및 응답 값 해당 API의 참고 문서를 확인할수 있습니다.
public static void main(String args[]){
String myKey = "공공데이터 key;
String url = "http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19SidoInfStateJson"; // 도시검색
String decodeServiceKey = "";
try {
decodeServiceKey = URLDecoder.decode(myKey, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String req_date = "20200720";
RestTemplate restTemplate = getCustomRestTemplate();
UriComponents builder = UriComponentsBuilder.fromHttpUrl(url)
.queryParam("ServiceKey", decodeServiceKey)
.queryParam("numOfRows", "30")
.queryParam("pageNo", "1")
.queryParam("startCreateDt", req_date)
.queryParam("endCreateDt", req_date)
.build(false);
String response = restTemplate.getForObject(builder.toUriString(), String.class);
JSONParser jsonParser = new JSONParser();
try {
JSONObject rtn_jsonObj = (JSONObject) jsonParser.parse(response);
JSONObject rtn_jsonObj_response = (JSONObject) jsonParser.parse(rtn_jsonObj.get("response").toString());
String rtn_response = rtn_jsonObj.get("response").toString();
JSONObject rtn_jsonObj_response_header = (JSONObject) jsonParser.parse(rtn_jsonObj_response.get("header").toString()); // header
JSONObject rtn_jsonObj_response_body = (JSONObject) jsonParser.parse(rtn_jsonObj_response.get("body").toString());
int total_cnt = Integer.parseInt(rtn_jsonObj_response_body.get("totalCount").toString());
if(total_cnt>0){
JSONObject rtn_jsonObj_response_body_items = (JSONObject) jsonParser.parse(rtn_jsonObj_response_body.get("items").toString());
JSONArray rtn_jsonArray_response_item = (JSONArray) jsonParser.parse(rtn_jsonObj_response_body_items.get("item").toString());
if(rtn_jsonArray_response_item.size()>0){
for(int i=0; i<rtn_jsonArray_response_item.size();i++){
JSONObject temp_item = (JSONObject) rtn_jsonArray_response_item.get(i);
String fd_seq = temp_item.get("seq") !=null && !temp_item.get("seq").toString().equals("") ? temp_item.get("seq").toString() : "";
String fd_date = req_date;
String fd_create_dt = temp_item.get("createDt") !=null && !temp_item.get("createDt").toString().equals("") ? temp_item.get("createDt").toString() : "";
String fd_death_cnt = temp_item.get("deathCnt") !=null && !temp_item.get("deathCnt").toString().equals("") ? temp_item.get("deathCnt").toString() : "";
String fd_gubun_kr = temp_item.get("gubun") !=null && !temp_item.get("gubun").toString().equals("") ? temp_item.get("gubun").toString() : "";
String fd_gubun_cn = temp_item.get("gubunCn") !=null && !temp_item.get("gubunCn").toString().equals("") ? temp_item.get("gubunCn").toString() : "";
String fd_gubun_en = temp_item.get("gubunEn") !=null && !temp_item.get("gubunEn").toString().equals("") ? temp_item.get("gubunEn").toString() : "";
String fd_inc_dec = temp_item.get("incDec") !=null && !temp_item.get("incDec").toString().equals("") ? temp_item.get("incDec").toString() : "0";
String fd_isol_clear_cnt = temp_item.get("isolClearCnt") !=null && !temp_item.get("isolClearCnt").toString().equals("")? temp_item.get("isolClearCnt").toString() : "0";
String fd_isol_ing_cnt = temp_item.get("isolIngCnt") !=null && !temp_item.get("isolIngCnt").toString().equals("") ? temp_item.get("isolIngCnt").toString() : "0";
String fd_local_occ_cnt = temp_item.get("localOccCnt") !=null && !temp_item.get("localOccCnt").toString().equals("") ? temp_item.get("localOccCnt").toString() : "0";
String fd_qur_rate = temp_item.get("qurRate") !=null && !temp_item.get("qurRate").toString().equals("") ? temp_item.get("qurRate").toString() : "-";
String fd_std_day = temp_item.get("stdDay") !=null && !temp_item.get("stdDay").toString().equals("") ? temp_item.get("stdDay").toString() : "";
String fd_update_dt = temp_item.get("updateDt") !=null && !temp_item.get("updateDt").toString().equals("") ? temp_item.get("updateDt").toString() : "";
}
}
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
* 소스화면이 지저분하게 보이는점 이해해주세요~
728x90
반응형
'Dev > 공공데이터&API연동' 카테고리의 다른 글
도로명주소 API 좌표값 구글맵에서 사용 방법 (3) | 2020.07.30 |
---|---|
도로명 주소 변환 Juso (0) | 2020.07.29 |