반응형
네이버에서 제공해주고 있는 API 는 엄청나게 다양하다.
그 중에서 검색 > 지역 API 사용하는 방법을 알려주고자 한다.
https://developers.naver.com/docs/serviceapi/search/local/local.md
해당 공식 문서를 보면 나오는데
상세히 자세히 읽어보아야 알 수 있다.
검색 API 특징
검색 API는 비로그인 방식 오픈 API입니다.
비로그인 방식 오픈 API는 네이버 오픈API를 호출할 때 HTTP 요청 헤더에 클라이언트 아이디와 클라이언트 시크릿 값만 전송해 사용할 수 있는 오픈 API입니다. 클라이언트 아이디와 클라이언트 시크릿은 네이버 오픈API에서 인증된 사용자인지 확인하는 수단입니다. 네이버 개발자 센터에서 애플리케이션을 등록하면 클라이언트 아이디와 클라이언트 시크릿이 발급됩니다.
비로그인 방식 오픈 API 형식으로
ID 와 Secret 코드가 필요하다
https://developers.naver.com/main/
해당 페이지로 이동 하여
서비스 API로 이동한다
https://developers.naver.com/products/service-api/search/search.md
신청으로 이동한다
필수 정보를 입력해준다.
ID 와 Secret 을 확인하고 메모해두자
[Java api 호출 코드 예시 ]
public String callLocalInfoApi() throws IOException {
String clientId = ""; //애플리케이션 클라이언트 아이디
String clientSecret = ""; //애플리케이션 클라이언트 시크릿
String text = null;
try {
text = URLEncoder.encode("그린팩토리", "UTF-8");
} catch (UnsupportedEncodingException e) {
throw new RuntimeException("검색어 인코딩 실패",e);
}
StringBuilder urlBuilder = new StringBuilder("https://openapi.naver.com/v1/search/blog?"); /*URL*/
urlBuilder.append("&" + URLEncoder.encode("regcode_pattern","UTF-8") + "=" + URLEncoder.encode(text, "UTF-8")); /*한 페이지 결과 수 (최소 10, 최대 9999)*/
Map<String, String> requestHeaders = new HashMap<>();
requestHeaders.put("X-Naver-Client-Id", clientId);
requestHeaders.put("X-Naver-Client-Secret", clientSecret);
//connect
URL url = new URL(urlBuilder.toString());
System.out.println("APIurl : " +url);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/json");
for(Map.Entry<String, String> header :requestHeaders.entrySet()) {
conn.setRequestProperty(header.getKey(), header.getValue());
}
System.out.println("API 응답 코드 : " + conn.getResponseCode());
BufferedReader rd;
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
/* System.out.println(line); */
sb.append(line);
}
rd.close();
conn.disconnect();
/* System.out.println(sb.toString()); */
return sb.toString();
}
예시일 뿐이니 본인의 사용법에 맞게 수정하시길 바랍니다.
반응형
'SW Dev Portfolio' 카테고리의 다른 글
아파치 톰캣의 메모리 사용량을 증가시켜주는 bat 파일 코드 (0) | 2023.09.25 |
---|---|
Jotai 전역 변수 관리 라이브러리 (0) | 2023.09.21 |
지도 웹앱 개발 좌표계 [최근접 이웃 알고리즘] (0) | 2023.09.19 |
웹 컴포넌트의 새로운 세계: 웹 개발의 패러다임 변화 (0) | 2023.09.08 |
‘애자일’ 잘 하는 방법(EoA) (0) | 2023.09.04 |
HEROKU 배포 하는 방법 (0) | 2023.08.15 |