더북(TheBook)

이 서비스의 컨트롤러 클래스는 src/main/java/com/optimagrowth/license/controller/LicenseController.java에 있다. LicenseController 클래스는 POST, GET, PUT, DELETE 동사에 매핑되는 네 개의 HTTP 엔드포인트를 노출한다.

이 컨트롤러 클래스를 살펴보고, 스프링 부트가 서비스 엔드포인트를 최소한의 노력으로 노출하며 서비스의 비즈니스 로직을 만드는 데 집중할 수 있게 하는 애너테이션을 어떻게 제공하는지 살펴보자. 아직 클래스 메서드가 없는 기본 컨트롤러 클래스 정의부터 시작해 보자. 다음 예제는 O-stock 라이선싱 서비스의 컨트롤러 클래스를 보여 준다.

코드 3-1 LicenseServiceController를 스프링 RestController로 지정하기

package com.optimagrowth.license.controller;
import java.util.Random; 
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable; 
import org.springframework.web.bind.annotation.PostMapping; 
import org.springframework.web.bind.annotation.PutMapping; 
import org.springframework.web.bind.annotation.RequestBody; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 
import com.optimagrowth.license.model.License; 
    @RestController 
    @RequestMapping(value="v1/organization/ 
                   {organizationId}/license")
    public class LicenseController {
    }

➊ 스프링 부트에 이 서비스는 REST 기반 서비스이며, 응답은 JSON으로 서비스 요청 및 자동으로 직렬화 및 역직렬화할 것이라고 지정한다.

➋ 이 클래스의 모든 HTTP 엔드포인트가 /v1/organization/{organizationId}/license에서 시작하도록 노출한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.