반응형
오늘은 카카오 오픈 API를 사용해보도록 하겠습니다
https://developers.kakao.com/docs/latest/ko/local/common
이번 글에서는 키워드로 검색하는 것만 사용해보도록 할게요
추가적인 기능과 query들은 공식 홈페이지 문서에 아주 잘 설명이 되어있습니다
curl -v -X GET "https://dapi.kakao.com/v2/local/search/keyword.json?y=37.514322572335935&x=127.06283102249932&radius=20000" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "query=카카오프렌즈"
공식 홈페이지 나와있는 예제입니다
이걸 바탕으로 spring에서 작성해보겠습니다
첫번째로 KEY를 발급받아야 합니다 상단의 홈페이지에서 키를 발급받아주세요!
public String getAddress(String keyWord) {
URI uri = UriComponentsBuilder
.newInstance()
.scheme("https")
.host("dapi.kakao.com")
.path("/v2/local/search/keyword.json")
.queryParam("query", keyWord)
.encode()
.build()
.toUri();
동적으로 query를 사용하기 위해서 URIBuilder의 구현 객체인 UriComponentsBuilder를 사용하도록 하겠습니다
encode 내부에 변수를 넣지 않으신다면 defualt는 Utf-8d입니다
이제 요청을 날릴 uri는 생성이 완료됐습니다
이제 카카오에서 발급받은 key값을 헤더에 넣어줘야겠죠
헤더에 key를 넣어주면서 entity를 만들겠습니다
RequestEntity requestEntity = RequestEntity
.get(uri)
.header("Authorization","KakaoAK " + "발급받은 키")
.build();
이제 요청 작성을 완료했습니다.
여기서 주의할 점은 바로 KakaoAk뒤에 띄어쓰기를 하지 않으시면 에러가 날 겁니다!
.header("Authorization","KakaoAK " + "발급받은 키")
띄어쓰기 한번 안하면 에러
이제 restTemplate을 이용해서 요청을 보냅니다
ResponseEntity<String > result = restTemplate.exchange(requestEntity, String.class);
응답받을 객체는 일단 보기 편하게 String으로 합니다
@Component
public class KakaoMapClient {
private RestTemplate restTemplate;
public KakaoMapClient(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public String getAddress(String keyWord) {
URI uri = UriComponentsBuilder
.newInstance()
.scheme("https")
.host("dapi.kakao.com")
.path("/v2/local/search/keyword.json") //Xml 선택가능
.queryParam("query", keyWord)
.encode()
.build()
.toUri();
RequestEntity requestEntity = RequestEntity
.get(uri)
.header("Authorization","KakaoAK " + "발급받은 키")
.build();
ResponseEntity<String > result = restTemplate.exchange(requestEntity, String.class);
return result.getBody();
}
}
전체 코드입니다.
카카오에서 응답입니다 공식 홈페이지 예제에서 가지고 왔습니다
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
"meta": {
"same_name": {
"region": [],
"keyword": "카카오프렌즈",
"selected_region": ""
},
"pageable_count": 14,
"total_count": 14,
"is_end": true
},
"documents": [
{
"place_name": "카카오프렌즈 코엑스점",
"distance": "418",
"place_url": "http://place.map.kakao.com/26338954",
"category_name": "가정,생활 > 문구,사무용품 > 디자인문구 > 카카오프렌즈",
"address_name": "서울 강남구 삼성동 159",
"road_address_name": "서울 강남구 영동대로 513",
"id": "26338954",
"phone": "02-6002-1880",
"category_group_code": "",
"category_group_name": "",
"x": "127.05902969025047",
"y": "37.51207412593136"
},
...
]
}
이렇게 해서 카카오 맵 오픈 api사용법을 알아봤습니다
반응형
'spring(스프링)' 카테고리의 다른 글
spring scheduler 사용하기 (0) | 2022.05.26 |
---|---|
spring boot + FCM push하는 방법 (0) | 2022.05.11 |
spring boot와 firebase 연결 방법 (2) (0) | 2022.05.07 |
spring boot와 firebase 연결 방법 (1) (1) | 2022.05.06 |
Querydsl 사용하기 (spring boot,maven) (2) | 2022.05.04 |