Burninghering's Blog
article thumbnail
Published 2022. 7. 18. 03:14
Naver 지역 검색 API 사용하기 Spring

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
profile

Burninghering's Blog

@개발자 김혜린

안녕하세요! 반갑습니다.