[Spring] REST ful API 란?

2024. 2. 24. 11:17BE/Spring

728x90

본 포스팅은 REST ful API의 기본 개념과 사용 예시에 대해 다룹니다.

API

API는 Application Programming Interface의 약자로 프로그램들이 통신하기 위한 통신 규약을 일컫습니다. 즉, 클라이언트가 서버쪽으로 request를 보내면, 그 request에 대한 response가 API를 통해 전송되는 것입니다.

예를들어, http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99 API는  서울시에서 제공하는 미세먼지 데이터를 얻을 수 있습니다. 

REST

REST는 REpresentational State Transfer의 약자로 자원이름(표현)으로 구분하여 자원의 상태(정보)를 전달하는 것입니다. 즉, 클라이언트가 원하는 자원과 그 표현을 요청하면, 서버는 자원의 표현으로 응답하는 방식을 REST라고합니다.

그렇다면 RESTful API는 무엇일까요 ? API가 REST의 특징을 가지고 있으면 그 API를 REST ful API라고 부를 수 있는 것입니다. 

예를들어, 유저의 게시물을 모아놓은 게시판이 있다고 했을 때, 특정 유저의 게시물을 얻고, 수정, 삭제하는 API는 아래와 같이 나타낼 수 있습니다.

자원(URI) 표현 행위
/userBoard/1 json GET
/userBoard/1 json PUT
/userBoard/1 json DELETE

코드로 나타내면 아래와 같습니다.

@GetMapping("/userBoard/{id}")
    @ResponseBody
    public BoardResponseDto userBoard(@PathVariable Long id) {
        return boardService.findBoard(id);
}

@PutMapping("/userBoard/{id}")
public ResponseEntity<String> putUserBoard(@RequestBody BoardRequestDto requestDto) {
    boardService.updateBoard(requestDto);
    return ResponseEntity.ok("수정이 완료되었습니다.");
}

@DeleteMapping("/userBoard/{id}")
public ResponseEntity<String> delUserBoard(@PathVariable Long id) {
    boardService.deleteBoard(id);
    return ResponseEntity.ok("삭제가 완료되었습니다.");
}