더북(TheBook)

이 서비스 클래스는 하드코딩된 데이터를 반환하는 더미 서비스를 포함하고 있어 마이크로서비스의 골격이 어떤 모습인지 보여 준다. 이 책을 읽어 가면서 이 서비스에 계속 작업하여 서비스 구조를 더 자세히 탐구할 것이다. 지금은 컨트롤러의 첫 번째 메서드를 추가해 보자. 이 메서드는 REST 호출에 사용되는 GET 동사를 구현하고 코드 3-4처럼 단일 License 클래스 인스턴스를 반환한다.

코드 3-4 GET HTTP 엔드포인트 노출하기

package com.optimagrowth.license.controller; 
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;
import com.optimagrowth.license.service.LicenseService; 
@RestController
@RequestMapping(value="v1/organization/{organizationId}/license")
public class LicenseController {

    @Autowired
    private LicenseService licenseService; 
  
    @GetMapping(value="/{licenseId}")  
    public ResponseEntity<License> getLicense(
        @PathVariable("organizationId") String organizationId,
        @PathVariable("licenseId") String licenseId) {  

        License license = licenseService 
                .getLicense(licenseId, organizationId);
            return ResponseEntity.ok(license); 
    }
}

➊ URL의 두 매개변수(organizationId와 licenseId)를 @GetMapping 매개변수로 매핑한다.

➋ 라이선스 데이터를 조회하는 GET 메서드

➌ ResponseEntity로 전체 HTTP 응답을 표현한다.

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