1. 요약
3계층 레이어 (Controller - Service - Repository)
- Controller: 제일 바깥 쪽에서 요청을 받고, 응답을 돌려주는 역할
- Service: 중간에서 구체적인 작업 순서를 결정, CRUD(수정)
- Repository: DB와 직접 소통하여 CRUD(생성/조회/삭제)하는 역할
- 각 레이어 간에는 절대 Entity를 직접 사용하지 않고, DTO 라는 택배상자를 만들어 사용
2. 네이버 쇼핑 API 이용하기
API 이용 신청
API 정보 확인
ARC 사용
- <API 기본 정보> 에서 출력포맷이 JSON 인 녀석의 요청 URL을 복사
- ARC의 URL에 붙임
- 첫 번째 header name: "X-Naver-Client-Id", value: Client ID 붙임
- 두 번째 header name: "X-Naver-Client-Secret", value: Client Secret 붙임
- 주소 제일 마지막에 "?query=adidas"라고 적은 뒤 SEND 버튼 (? 부터는 url이 아닌 필요한 정보)
- 아디다스 검색 성공
- 필요한 정보 (title, link, image, lprice)
3. 자바로 네이버 쇼핑 API 이용하기
자바 코드 확인하기
- ARC 응답 확인
- JAVA 탭 -> SPRING 탭 -> 복사
프로젝트 생성하기
- 프로젝트 설정
- 라이브러리 추가
- 환경설정 (Auto Import)
- 환경설정 (Annotation Processors)
NaverShopSearch 클래스 생성하기
- utils 패키지 생성 (src > main > java > com.sparta.week04)
- 클래스 생성 (NaverShopSearch.java)
- search 메소드 생성
- ARC 코드 복사 (JAVA -> SPRING)
- response 반환
package com.sparta.week04.utils;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
public class NaverShopSearch {
public String search() {
RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("X-Naver-Client-Id", "FFBgnQz1WGHs4zhkgJAK");
headers.add("X-Naver-Client-Secret", "c4RRV0_1jJ");
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();
}
}