https://developers.naver.com/docs/serviceapi/search/local/local.md#%EC%A7%80%EC%97%AD
지역 - Search API
지역 NAVER Developers - 검색 API 지역 검색 개발가이드 검색 > 지역 네이버 지역 서비스에 등록된 각 지역별 업체 및 상호 검색 결과를 출력해주는 REST API입니다. 비로그인 오픈 API이므로 GET으로 호출
developers.naver.com
https://developers.naver.com/apps/#/myapps/TNYycpp5NSwKwDC0xjpg/overview
애플리케이션 - NAVER Developers
developers.naver.com
클라이언트 ID와 Client Secret을 할당받자
예시
호출
curl "https://openapi.naver.com/v1/search/local.xml?query=%EC%A3%BC%EC%8B%9D&display=10&start=1&sort=random" \
-H "X-Naver-Client-Id: {애플리케이션 등록 시 발급받은 client id 값}" \
-H "X-Naver-Client-Secret: {애플리케이션 등록 시 발급받은 client secret 값}" -v
UTF-8 인코딩을 하느라
강의를 3분이나 허비한다... 왜 편집을 안하고 올리는지 의문이다..
갑자기 서버쪽에 Rest template를 만든다고 한다
package com.example.server.controller;
import com.example.server.dto.Req;
import com.example.server.dto.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpEntity;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.util.UriComponentsBuilder;
import java.net.URI;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
@Slf4j
@RestController
@RequestMapping("/api/server")
public class ServerApiController {
//https://openapi.naver.com/v1/search/local.json
// ?query=\xEA\xB3\xB5\xEB\xA3\xA1
// &display=10
// &start=1
// &sort=random
@GetMapping("/naver")
public String naver(){
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","TNYycpp5NSwKwDC0xjpg")
.header("X-Naver-Client-Secret","idHLtS94gI")
.build();
ResponseEntity<String> result = restTemplate.exchange(req,String.class);
return result.getBody();
}
String으로 받아서 네이버 api를 글로 볼 수 있게
연동을 해보았습니다~
요청 주소~
http://localhost:9090/api/server/naver
결과~
'Spring' 카테고리의 다른 글
Repository 만들기와 정렬 방법(최신순/수정된 시간 순) (0) | 2022.11.15 |
---|---|
Query Method 쿼리 메소드란? (0) | 2022.11.15 |
Server to server - header (0) | 2022.07.16 |
Server to server - POST (0) | 2022.06.27 |
Server to server - GET (0) | 2022.06.26 |