REST API 설계
- 자원을 나타낼 때는 명사로 표현, 일반적으로 복수형 사용
- 복합명사인 경우
- 사용
스웨거(Swagger)
스프링 부트와 연동하기
- 스프링 부트에서 사용하려면
pom.xml에 의존성 추가
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.6.0</version>
</dependency>
@Configuration
@OpenAPIDefinition(
info = @Info(
title = "Title",
description = "Description",
version = "v1.0.0"
)
)
public class SwaggerConfig {
@Bean
public OpenAPI openAPI() {
return new OpenAPI()
.components(new Components())
}
}
- 위 작업들 완료 후
/swagger-ui/index.html로 접속하면 API 문서 확인 가능

학과 서비스(department-service)
1) 학과 조회
- GET v1/department-service/departments
- GET v1/department-service/departments/{department-no}
2) 학과 등록
- POST v1/department-service/departments
3) 학과 수정
- PUT v1/department-service/departments/{department-no}
* 변경할 데이터는 body에 담아서 보냄
4) 학과 삭제
- DELETE v1/department-service/departments/{department-no}
@RestController
@RequestMapping("/v1/department-service")
@Tag(name = "Department APIs", description = "학과 관련 API 목록")
@RequiredArgsConstructor
public class DepartmentController {
private final DepartmentService departmentService;
@GetMapping("/departments")
@Operation(summary = "학과 목록 조회", description = "전체 학과의 목록을 조회한다.")
@ApiResponses(
value = {
@ApiResponse(
responseCode = "200",
description = "OK",
content = @Content(mediaType = "application/json")
),
@ApiResponse(
responseCode = "404",
description = "NOT FOUND",
content = @Content(mediaType = "application/json")
)
}
)
@Parameters(
value = {
@Parameter(name = "page", description = "페이지 번호", example = "1"),
@Parameter(name = "numOfRows", description = "한 페이지의 결과 수", example = "10")
}
)
public ResponseEntity<List<Department>> getDepartments(@RequestParam int page,
@RequestParam int numOfRows) {
List<Department> departments = departmentService.getDepartments(page, numOfRows);
return DepartmentMapper.selectDepartments(rowBounds);
}
}