REST



- REST API란?


REST는 URI, Resource, HTTP Method를 통해 해당 자원에 대한 CRUD 작업을 수행한다는 의미. 기본적으로 HTTP 프로토콜을 사용하며 네트워크 상에 클라이언트와 서버가 통신하는 방식 중 하나이다.


URI(Uniform Resource Identifier, URI) : 인터넷에 있는 특정 자원을 나타내는 유일한 주소

RESTful은 REST 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용하는 용어로, REST API를 사용하는 웹 서비스나 애플리케이션은 'RESTful'하다고 할 수 있다고 한다.

REST
REST API

- URI


URI는 인터넷에 있는 정보의 자원을 표현하는 방법으로 아래와 같은 주소 형식이 URI이다.

Ex) http://www.restapi.uri.com/member/


위와 같은 URI를 POST방식으로 회원 데이터를 담아 서버로 보내게 된다면, 서버에서는 회원가입 절차라는 것을 인지하고 POST로 받은 데이터를 회원 DB에 저장합니다.

자세한 건 REST API 설계 규칙을 찾아보면 좋다.

- HTTP Method

HTTP Method CRUD IDEMPOTENT(멱등성)
POST CREATE NO
GET READ YES
PUT/PATCH UPDATE YES
DELETE DELETE YES


*IDEMPOTENT(멱등성) : 여러 번 작업을 수행해도 결과가 동일하다는 의미


PUT / PATCH


둘 다 데이터 수정을 위한 메소드로 두 가지의 경우 차이점이 있어 구분해서 사용해야 한다. 짧고 간단하게 설명하자면, PUT의 경우 데이터 수정 요청 시 변경하지 않을 데이터까지 전송해야 별 탈이 없다.

회원 비밀번호를 수정하는 PUT 요청시 비밀번호만 전송하면 되는 것이 아니라 회원 전체의 데이터를 다시 전송해주어야 제대로 변경된다. 비밀번호만 전송했을 경우 나머지 회원 정보들은 null 값을 변경된다.

이 문제로 인해 PATCH라는 아주 똑똑한 녀석이 나타났다. 그냥 변경하고 싶은 데이터만 보내주면 기존 데이터는 유지한 체 알아서 변경해준다.

데이터 전체를 수정할 경우 PUT, 일부분만 수정할 경우 PATCH를 사용, 하지만 POST를 사용하기도 함.