R
Rishtaara
Spring Boot Fundamentals
Lesson 4 of 8Article22 min

Building REST Controllers

Building REST Controllers

REST endpoint design

  • Use nouns in routes (`/courses`, `/students`).
  • Map HTTP verbs clearly: GET, POST, PUT/PATCH, DELETE.
  • Return proper status codes and structured JSON.
CourseController example
@RestController
@RequestMapping("/api/courses")
public class CourseController {
  private final CourseService courseService;

  public CourseController(CourseService courseService) {
    this.courseService = courseService;
  }

  @GetMapping
  public List<CourseDto> list() {
    return courseService.list();
  }

  @PostMapping
  public ResponseEntity<CourseDto> create(@Valid @RequestBody CreateCourseRequest request) {
    CourseDto created = courseService.create(request);
    return ResponseEntity.status(HttpStatus.CREATED).body(created);
  }
}