‘얄팍한 코딩사전 -REST API - 이거 하나로 끝남’ 을 기본으로 정리하였습니다.
정보 전달을 요청하고 응답 받을 수 있는 API의 다양한 형식 중 하나이다.

URL는 ‘어떤 자원’에 관한 것인지 표현해야 하고 또 가능한 한 ‘그것만’ 표현해야 한다. 그 자원으로 무엇을 하는 지에 대해서는 가능한 URL에 포함하지 않는다. 어떤 종류의 작업을 하는 지에 대해서는 HTTP 메소드로 표현한다.
GET은 정보를 조회할 때 사용된다.
특정 조건으로 필터링하여 정보를 조회 하려면 query parameter를 사용한다.
받을 데이터의 수량 조절은 페이지네이션을 이용할 수 있다.
특정 정보를 조회하고 싶을 때는 끝에 고유 식별자를 붙인다.
고유 식별자를 사용하기 위해서는 반드시 데이터베이스 설계 시 각 항목마다 고유값을 가질 수 있도록 해야한다.
HATEOAS
요청한 데이터와 관련하여 요청 가능한 다른 기능들도 함께 전달해주는 것이다. 개발자는 해당 데이터를 통해서 다음에 추가로 가능한 요청에 대하여 알 수 있는 장점이 있다. 
각 리소스는 상위 혹은 하위 리소스를 가질 수 있다.
책의 경우, 책에 대한 리뷰가 있다면 책이 상위 리소스, 리뷰가 하위 리소스로 구분할 수 있다.
1번 책의 리뷰를 확인하기 위해서는 위와 같이 사용할 수 있다.

새로운 책에 대한 정보를 추가하고 싶은 경우, body에 정보를 담아 전달한다. 책의 성공적 등록 후 서버에서는 오른쪽과 같이 자동으로 추가된 새로운 정보가 추가된 응답을 돌려줄 수 있다,

PUT 요청을 특정 항목에 대한 전체 대체 시 사용된다. 따라서 body에 대체할 모든 정보를 담아 전달한다.

정보의 부분 수정을 원할 경우 PATCH를 사용할 수 있다. 수정을 원하는 데이터만 담아 전달한다.

정보의 삭제의 경우 DELETE를 사용한다. 원하는 삭제 데이터를 나타낼 수 있는 고유번호를 함께 전달한다.
서버의 응답에는 요청에 대한 상태를 나타낼 수 있는 코드를 함께 보내준다.
STATELESS
클라이언트의 상태 정보가 서버에 저장되지 말아야 한다.
즉, 동일한 요청을 여러 번 하더라도 필요한 모든 내용을 포함하여 다시 응답해야 한다.
Idempotent
데이터 수정이 없을 경우, 클라이언트가 같은 요청을 하 항상 같은 답이 응답되어야 한다.
Cacheability
서버와 클라이언트는 서버 본인이 보낸 응답과 클라이언트 본인이 보낸 요청에 관해서는 기억을 하는 것이 좋다.
해당 데이터를 또 다시 사용할 수 있도록 저장하는 것을 캐싱이라고 한다.
REST API에서 보안은 매우 중요하며, OAuth, JWT(JSON Web Token) 등의 인증 방식이 자주 사용된다.
또한, HTTPS를 사용하여 통신을 암호화하는 것이 보안상 매우 중요하다.