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);
}
}