본문 바로가기
  • _^**_
무근본 IT 지식 공유/무근본 스프링(Spring Framework)

[무근본 스프링] REST API에서 PATCH 요청이란? - 코드 샘플

by 크리드로얄워터 2023. 4. 20.
반응형

REST API에서 PATCH 요청은 리소스의 일부분을 수정하는 요청입니다. PUT 요청과는 달리, PATCH 요청은 리소스의 전체를 교체하지 않고 일부분만 수정하는 것이 목적입니다.

 

예를 들어, 게시글의 제목(title)만 변경하고자 할 경우, PATCH 요청을 사용하여 서버에 해당 변경 사항을 전달합니다. PATCH 요청은 PUT 요청과 달리 전송되는 데이터가 변경된 속성만 포함하고, 나머지 속성은 변경되지 않은 상태로 유지됩니다.

REST API에서 PATCH 요청을 처리하기 위해서는, 클라이언트가 전달한 데이터를 분석하여 변경된 속성을 식별하고, 해당 속성만 업데이트하는 로직이 필요합니다. 이를 위해서는 서버 측에서 별도의 PATCH 요청 핸들러를 구현해야 합니다.

Spring Framework에서는 @PatchMapping 어노테이션을 사용하여 PATCH 요청을 처리할 수 있습니다. @PatchMapping 어노테이션은 @RequestMapping 어노테이션의 축약형이며, HTTP PATCH 요청을 처리하는 핸들러 메서드에 지정할 수 있습니다.

예를 들어, 다음과 같은 코드는 /api/article/{id} 경로로 PATCH 요청이 들어오면 해당 게시글의 제목(title)을 변경하는 핸들러 메서드를 실행합니다.

 

@PatchMapping("/api/article/{id}")
public ResponseEntity<Article> updateArticleTitle(@PathVariable Long id, @RequestBody ArticleForm form) {
    Article article = articleService.getArticleById(id);
    if (article == null) {
        return ResponseEntity.notFound().build();
    }

    // ArticleForm 객체에서 변경된 속성을 추출하여 Article 엔티티에 업데이트
    article.setTitle(form.getTitle());
    article = articleRepository.save(article);

    return ResponseEntity.ok(article);
}

 

이 핸들러 메서드는 클라이언트가 전달한 ArticleForm 객체에서 변경된 제목(title)을 추출하여, 해당 게시글의 제목을 업데이트한 뒤, 업데이트된 게시글 객체를 반환합니다. 클라이언트는 이를 통해 PATCH 요청에 대한 응답을 받습니다.

반응형

댓글