이 서비스 클래스는 하드코딩된 데이터를 반환하는 더미 서비스를 포함하고 있어 마이크로서비스의 골격이 어떤 모습인지 보여 준다. 이 책을 읽어 가면서 이 서비스에 계속 작업하여 서비스 구조를 더 자세히 탐구할 것이다. 지금은 컨트롤러의 첫 번째 메서드를 추가해 보자. 이 메서드는 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 응답을 표현한다.