Spring 1주차 - RestController, Handler Method

김건우·2023년 12월 22일

개발 공부

목록 보기
10/13
post-thumbnail

RestController

@RequestMapping("/courses")
@RestController
class CourseController {

}
  • CourseControlerSpring Bean 으로 등록한다.
  • @Controller@ResponseBody 가 합쳐진 annotation 으로 클래스의 모든 함수에 @ResponseBody를 자동으로 설정해준다.

Handler Method

Controller 단에서 HTTP 요청을 처리하기 위해 지정하는 Annotation

주로 사용되는 Handler Method

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping
  • @RequestMapping 의 파생 Annotation. 요청 URI와 Method를 함께 나타낸다.
    Class 상위에 @RequestMapping이 지정되어 있을 때, 해당 @RequestMapping 에 지정된 URI를 base URI로서 인식하고, 이후 @GetMapping 등에 지정된 URI가 추가된다.
    • URI(Resource) : Uniform Resource Locator, 특정 resource에 접근하기 위한 이름 혹은 주소
  • @RequestParam : HTTP 요청 파라미터 값을 매핑하는 데 사용한다.
  • @PathVariable : URI 경로 변수 값을 매핑하는데 사용된다.
  • @RequestBody : 요청 DTO를 표기할때 사용한다. 클라이언트로 요청받은 Json을 객체로 맵핑해준다.

사용 예시

@RequestMapping("/courses")
@RestController
class CourseController {

    @PostMapping
    fun createCourse(@RequestBody createCourseRequest: CreateCourseRequest): ResponseEntity<CourseResponse> {
        TODO("not implemented")
    }

    @GetMapping()
    fun getCourseList(): ResponseEntity<List<CourseResponse>> {
        TODO("not implemented")
    }

    @GetMapping("/{courseId}")
    fun getCourse(@PathVariable courseId: Long): ResponseEntity<CourseResponse> {
        TODO("not implemented")
    }

    @PutMapping("/{courseId}")
    fun updateCourse(
        @PathVariable courseId: Long,
        @RequestBody updateCourseRequest: UpdateCourseRequest
    ): ResponseEntity<CourseResponse> {
        TODO("not implemented")
    }

    @DeleteMapping("/{courseId}")
    fun deleteCourse(@PathVariable courseId: Long): ResponseEntity<Unit> {
        TODO("not implemented")
    }

}
profile
즐겁게

0개의 댓글