spring | spring boot
SpringBoot yaml, naver API와 연결하기
socialcomputer
2022. 2. 3. 17:24
반응형
spring에서 yaml은 처음 써봤기 때문에 참고용으로 올려두려고 한다.
// application.yaml
naver:
url:
search:
local: https://openapi.naver.com/v1/search/local.json
Image: https://openapi.naver.com/v1/search/image
client:
id: 홈페이지에서 발급
secret: 홈페이지에서 발급
server:
port: 포트번호
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
pathmatch:
matching-strategy: ANT_PATH_MATCHER // swagger 버전오류해결 부분
그리고 위의 naver 부분을 java파일에서 가져다 쓸 수 있다.
public class NaverClient {
@Value("${naver.client.id}")//lombok꺼 아니고 springframeworkd의 value어노테이션
private String naverClientId;
@Value("${naver.client.secret}")
private String naverClientSecret;
@Value("${naver.url.search.local}")
private String naverUrlSearchLocal;
@Value("${naver.url.search.image}")
private String naverUrlSearchImgae;
}
네이버 개발자 센터 링크 https://developers.naver.com/main/
NAVER Developers
네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음
developers.naver.com
위의 링크를 들어가 보면 각 카테고리의 api마다 요청하는 예시를 잘 살펴보고 그에 맞게 알맞도록 설정해주어야 한다.
검색 api로 요청을 보내고 받는다고 하면 다음과 같은 메서드를 작성할 수 있다.
public SearchLocalRes searchLocal(SearchLocalReq searchLocalReq) {
var uri = UriComponentsBuilder.fromUriString(naverUrlSearchLocal)
.queryParams(searchLocalReq.toMultiValueMap())
.build()
.encode()
.toUri();
var headers = new HttpHeaders();
headers.set("X-Naver-Client-Id", naverClientId);
headers.set("X-Naver-Client-Secret", naverClientSecret);
headers.setContentType(MediaType.APPLICATION_JSON);
var httpEntity = new HttpEntity<>(headers);
var responseType = new ParameterizedTypeReference<SearchLocalRes>() {};
var responseEntity = new RestTemplate()
.exchange(uri, HttpMethod.GET ,httpEntity, responseType);
return responseEntity.getBody();
}
반응형