본문 바로가기

나만의 select shop 만들기

키워드로 상품 검색하기 - 네이버 API와 서비스 연결하기

1.NaverShopSearch 컴포넌트 등록

 

컴포넌트 등록이란? 스프링이 필요한 클래스를  자동으로 생성하도록 권한을 주는것.

이제 검색을 main메서드가 아니라 controller에서 가져다 써야 한다.

그럼 스프링이 자동으로 필요한 클래스를 필요한 곳에 생성 해야 할 때

자동으로 생성하려는 클래스 목록이 이것들이구나 확인해야 한다.

그 목록에 등록하는것이 컴포넌트 등록!

@Component //이제부터, @RequiredArgsConstructor 와 함께 사용할 경우 스프링이 자동으로 생성합니다.
public class NaverShopSearch {
솰라솰라
}

 

 

2.SerchRequestController 만들기

@RequiredArgsConstructor // final 로 선언된 클래스를 자동으로 생성합니다.
@RestController // JSON으로 응답함을 선언합니다.
public class SearchRequestController {

    private final NaverShopSearch naverShopSearch;

    @GetMapping("/api/search")
    public List<ItemDto> getItems(@RequestParam String query) { 
    
    //@RequestParam : url에서 query라는 매개변수를 받아온다. url에 있는 변수명과 반드시 동일해야 함
    
    	String resultString = naverShopSearch.search(query); // 검색결과를 받아오고
        return naverShopSearch.fromJSONtoItems(resultString); // 원하는 데이터만 추출한 json 들을 목록으로 가져올 수 있게 ArrayList로 바꾼다.
    }
}

바로 이걸 위해 컴포넌트를 등록했다. @RequilredArgsConstructor로 기존에 라이브러리로 가져온 클래스들을 자동생성했는데 그 클래스들 목록에 NaverShopSearch를 추가해 준 것이다.

 

이제 Application 서버를 재시작 하여 ARC로 정상작동 테스트를 해보자

정상 완료쓰~