RESTful API

송성빈·2024년 6월 14일
post-thumbnail

개요

RESTful API는 네트워크 상에서 클리어언트와 서버 간의 통신을 위한 아키텍처 중 하나이다. REST는 Representataional State Transfer의 약자로, 웹의 장점을 최대한 활용한 설계를 목표로 한다. 이 글에서 RESTful API의 개념을 이해하고, 실제 예시 코드를 통해 활용 방법을 정리한다.


RESTful API

RESTful API는 다음과 같은 원칙을 따른다.

  • 클라이언트-서버 구조: 클라이언트와 서버는 명확히 분리되며, 서버는 API를 통해 데이터와 기능을 제공한다.
  • 무상태: 각 요청은 독립적이며, 서버는 이전 요청의 상태를 제공하지 않는다.
  • 캐시 처리 가능: 클라이언트는 응답을 캐시할 수 있어야 한다.
  • 계층 구조: 캐시와 같은 중간 서버가 요청을 처리할 수 있다.

컨트롤러 예시

@RestController
@RequiredArgsConstructor
@RequestMapping("/api/items")
public class ItemController {

    private final ItemService itemService;

    @GetMapping
    public ResponseEntity<List<Item>> itemList() {
        List<Item> items = itemService.itemList();
        return ResponseEntity.ok(items);
    }

    @PostMapping
    public ResponseEntity<Item> addItem(@RequestBody Item item) {
        Item addItem = itemService.addItem(item);
        return ResponseEntity.status(HttpStatus.CREATED).body(addItem);
    }

    @PutMapping("/{id}")
    public ResponseEntity<Item> updateItem(@PathVariable Long id, @RequestBody Item item) {
        Item updateItem = itemService.updateItem(id, item);
        return ResponseEntity.ok().body(updateItem);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<?> deleteItem(@PathVariable Long id) {
        itemService.deleteItem(id);
        return ResponseEntity.noContent().build();
    }
}

0개의 댓글