반응형
https://juso.dev/docs/reg-code-api/#headline-4
공공데이터를 사용허가를 받고
데이터를 정렬 및 선택적으로 보기 위해서는
아무래도 위치 기반 데이터가 많기 때문에
대한민국 내 지역 별로 묶어 보고 싶을 때가 많다
공공데이터 json xml 값 중
zcode zscode 라는걸 확인 할 수 있는데
해당 코드가 법정동 코드이다
해당 코드를 데이터 베이스에 집어 넣어서 매칭 시킬 수도 있지만
해당 값을 불러 올 수 있는 API 가 있어 소개하고자 한다.
https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?regcode_pattern=*00000000
우선 기본 url 은 이와 같다
regcode_pattern
파라메터를 통해 원하는 값을 불러 올 수 있는데
HTTP 호출
예제
대한민국의 모든 특별/광역시, 도 반환
https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?regcode_pattern=*00000000
서울특별시 소속의 모든 구, 동을 반환
https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?regcode_pattern=11*
서울특별시 소속의 모든 구 반환
https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?regcode_pattern=11*00000
서울특별시 종로구를 포함한 종로구의 모든 동 반환
https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?regcode_pattern=1111*
서울특별시 종로구의 모든 동"만" 반환
https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?regcode_pattern=1111*&is_ignore_zero=true
이와 같다
파라메터 값이 많지 않아 아쉽긴하다
API를 호출 하는 예시 코드는 이와 같다
JAVA
반환 값 !
public String callLocalNumberApi() throws IOException {
StringBuilder urlBuilder = new StringBuilder("https://grpc-proxy-server-mkvo6j4wsq-du.a.run.app/v1/regcodes?"); /*URL*/
urlBuilder.append("&" + URLEncoder.encode("regcode_pattern","UTF-8") + "=" + URLEncoder.encode("*00000000", "UTF-8")); /*한 페이지 결과 수 (최소 10, 최대 9999)*/
URL url = new URL(urlBuilder.toString());
System.out.println("APIurl : " +url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/json");
System.out.println("API 응답 코드 : " + conn.getResponseCode());
BufferedReader rd;
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
/* System.out.println(line); */
sb.append(line);
}
rd.close();
conn.disconnect();
/* System.out.println(sb.toString()); */
return sb.toString();
}
예시
{"regcodes":[{"code":"1100000000","name":"서울특별시"},
{"code":"2600000000","name":"부산광역시"},
{"code":"2700000000","name":"대구광역시"},
{"code":"2800000000","name":"인천광역시"},
{"code":"2900000000","name":"광주광역시"},
{"code":"3000000000","name":"대전광역시"},
{"code":"3100000000","name":"울산광역시"},
{"code":"4100000000","name":"경기도"},
{"code":"4300000000","name":"충청북도"},
{"code":"4400000000","name":"충청남도"},
{"code":"4500000000","name":"전라북도"}
,{"code":"4600000000","name":"전라남도"},
{"code":"4700000000","name":"경상북도"},
{"code":"4800000000","name":"경상남도"},
{"code":"5000000000","name":"제주특별자치도"},
{"code":"5100000000","name":"강원특별자치도"}]}
개인적으로는 디비에 넣어서 관리하는게 더 좋을 수도 있다고 생각한다
반응형
'SW Dev Portfolio' 카테고리의 다른 글
2023년 홈페이지 취약점 점검 문제점 및 핵심사항 해결 방법 (3) | 2024.01.17 |
---|---|
IT 경력 개발자 이직 면접 예상 질문 및 답변 (3) | 2024.01.09 |
React 기반 MERN 웹 로그인 할 때 firebase Authentication 사용법 자세히 알려드립니다. (회원가입 , 로그인 코드) (4) | 2023.11.04 |
Content-Security-Policy (CSP) 헤더 관하여 알아보았다 (2) | 2023.10.26 |
지도 api (네이버,카카오) + 공공데이터 활용 앱 개발 Test 영상 (3) | 2023.10.20 |
DBever를 사용하여 MySQL를 PostgreSQL로 마이그레션 하는 방법 (1) | 2023.10.18 |