스프링 입문
[스프링 입문] 7. 네이버 지역검색 api 연동해보기
코딩펭귄
2024. 1. 12. 15:12
1. 네이버 open api 사이트에서 오픈 api 이용신청 하기
https://developers.naver.com/products/service-api/search/search.md
검색 - SERVICE-API
검색 NAVER Developers - 검색 API 소개 웹, 뉴스, 블로그 등 분야별 네이버 검색 결과를 웹 서비스 또는 모바일 앱에서 바로 보여 줄 수 있습니다. 또한 ’OO역맛집’과 같은 지역 검색을 할 수도 있으
developers.naver.com
설정예시
2. 해당 페이지 참고하여 server 프로젝트에 코드 작성
https://developers.naver.com/docs/serviceapi/search/blog/blog.md#%EB%B8%94%EB%A1%9C%EA%B7%B8
검색 > 블로그 - Search API
검색 > 블로그 블로그 검색 개요 개요 검색 API와 블로그 검색 개요 검색 API는 네이버 검색 결과를 뉴스, 백과사전, 블로그, 쇼핑, 영화, 웹 문서, 전문정보, 지식iN, 책, 카페글 등 분야별로 볼 수
developers.naver.com
Talend API Test 사이트에서 헤더의 name과 value값은
네이버 API(내 Application) 에서 확인할 수 있다
@Slf4j
@RestController
@RequestMapping("/api/server")
public class ServerApiController {
// https://openapi.naver.com/v1/search/local.json
// ?query=%EC%A3%BC%EC%8B%9D
// &display=10
// &start=1
// &sort=random
@GetMapping("/naver")
public String naver(){
//인코딩 시켜주기
String query = "갈비집";
//String encode = Base64.getEncoder().encodeToString(query.getBytes(StandardCharsets.UTF_8));
//이렇게하면 총 인코딩이 2번이 돼서 오류발생함(주석처리 한 이유)
URI uri = UriComponentsBuilder
.fromUriString("https://openapi.naver.com")
.path("/v1/search/local.json")
.queryParam("query", "갈비집")
.queryParam("display", 10)
.queryParam("start", 1)
.queryParam("sort", "random")
.encode(Charset.forName("UTF-8"))
.build()
.toUri();
// 주소 잘 만들어졌는지 확인
log.info("uri : {}", uri);
RestTemplate restTemplate = new RestTemplate();
// 헤더를 사용하기 위한것
RequestEntity<Void> req = RequestEntity
.get(uri)
.header("X-Naver-Client-Id", "pYm6N0xbw_JgJTukhYgE")
.header("X-Naver-Client-Secret", "o8aPLJ9oZs")
.build();
// 간단하게 String으로 받아서 네이버 api 연동해보기
ResponseEntity<String> result = restTemplate.exchange(req, String.class);
return result.getBody();