archive

네이버 쇼핑 검색 API 이용하기 본문

STUDY/Spring

네이버 쇼핑 검색 API 이용하기

seonyounggg 2021. 2. 7. 19:13

네이버 쇼핑 검색 API에 대한 정보는 아래 링크에서 확인할 수 있다.

 

검색 API 쇼핑 검색 개발가이드

NAVER Developers - 검색 API 쇼핑 검색 개발가이드

developers.naver.com

먼저, 해당 API를 이용하기 위해서 신청을 해야 한다.

이용신청이 완료되면 client_id와 secrete_key가 발급된다.

 

자바 애플리케이션에서 사용해보기에 앞서서 ARC로 response를 받아보겠다.

발급받은 두 가지 값을 header에 넣어주고 검색어는 parameter로 넘겨줘야 한다.

parameter에는 검색어 이외에도 정렬 기준 등을 지정할 수 있다. (사이트 참고)

참고로 한글 검색어를 넣는 경우에는 인코딩 문제로 결과가 정상적으로 나오지 않는다. (Postman에서는 정상작동한다.)

자바에서는 자동으로 변환해주므로 테스트할 때는 일단 영어 검색어를 이용하였다.

 

위 사진에서 CODE탭을 누르고 Java-Spring을 선택하면 동일한 기능을 하는 코드가 자동으로 생성된 것을 확인할 수 있다.

해당 코드를 이용하여 아래와 같이 작성하였다.

public class NaverShopSearch {
    public String search() {
        RestTemplate rest = new RestTemplate();

        //헤더 클래스에 필요한 값 넣어줌
        HttpHeaders headers = new HttpHeaders();
        headers.add("X-Naver-Client-Id", "qBjYkKq_qWbUE5HxOGwh");
        headers.add("X-Naver-Client-Secret", "QtFQO63CYC");

        //BODY 있으면 이곳에
        String body = "";

        HttpEntity<String> requestEntity = new HttpEntity<String>(body, headers);
        ResponseEntity<String> responseEntity = rest.exchange("https://openapi.naver.com/v1/search/shop.json?query=아디다스", HttpMethod.GET, requestEntity, String.class);
        HttpStatus httpStatus = responseEntity.getStatusCode();

        int status = httpStatus.value();
        String response = responseEntity.getBody();
        System.out.println("Response status: " + status);
        System.out.println(response);

        return response;
    }

    public static void main(String[] args) {
        NaverShopSearch naverShopSearch = new NaverShopSearch();
        naverShopSearch.search();
    }
}

검색어에 고정된 형태가 아닌 변수를 넣으려면, rest.exchange()의 첫번째 인자 URI에서 parameter 다음에 변수를 붙여주면 된다.

String형태로 reponse결과를 전달받는다.

이를 실행해보면 아래와 같이 검색결과를 얻을 수 있다.

 

문자열 형태로 전달받은 response를 활용하기 위해 JSON으로 변경해야 한다.

이는 다음 포스팅에서 다루도록 하겠다.

Comments