본문 바로가기

자바

백엔드에서 카카오 맵 API 요청하기 [Java, REST API, Kakao Map]

반응형

개발 가이드 ) https://developers.kakao.com/docs/latest/ko/local/dev-guide

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

카카오 다음지도 API ) http://apis.map.kakao.com/

 

JSONObject, JSONArray 는 아래 라이브러리를 이용했음

Json Simple 라이브러리 ) https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple

 

 

요청 코드

String lat = "";
String lng = "";
String city = "인천광역시 서구 경서동";

RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);

//다음지도 API를 사용할 때에는 header에 Authorization이라는 이름으로 서비스키값 전송
String appkey = "KakaoAK {api서비스키값}";
headers.set("Authorization", appkey);

HttpEntity<String> entity = new HttpEntity<String>("parameters",headers);
String encode = URLEncoder.encode(city, "UTF-8"); 
String rawURI = "https://dapi.kakao.com/v2/local/search/address.json?query=" + encode; 
URI  uri = new URI(rawURI); 

ResponseEntity<String> res = rest.exchange(uri, HttpMethod.GET, entity, String.class); 

JSONParser jsonParser = new JSONParser(); 
JSONObject body = (JSONObject) jsonParser.parse(res.getBody().toString()); 
JSONArray docu = (JSONArray) body.get("documents"); 

if(docu.size() != 0) {
	JSONObject addr = (JSONObject)docu.get(0); 
	if(addr.size() != 0) { 
		JSONObject addr1 = (JSONObject) addr.get("address"); 
		if(b_code.length() < 1) { 
			 b_code = ((String) addr1.get("b_code")).substring(0, 5); 
		}else { 
			 b_code = ((String) addr1.get("h_code")).substring(0, 5); 
		}
	}
}

 

넘어오는 값

[{"address":
    {"sub_adderss_no":"",
     "h_code":"",
     "region_3depth_name":"경서동",
     "main_address_no":"",
     "address_name":"인천 서구 경서동",
     "main_adderss_no":"",
     "region_2depth_name":"서구",
     "region_3depth_h_name":"",
     "region_1depth_name":"인천",
     "b_code":"2826010400",
     "zip_code":"",
     "mountain_yn":"N",
     "x":"126.65133717694862",
     "sub_address_no":"",
     "y":"37.55618232744196"},
     "address_type":"REGION",
     "x":"126.65133717694862",
     "y":"37.55618232744196",
     "address_name":"인천 서구 경서동",
     "road_address":null
}]

JSONObject, JSONArray 를 이용해 데이터 파싱해서 사용하기