REST한 API란 무엇일까?
REST한 API?
프로젝트를 진행하면서, Back-end단에서 API 문서를 작성하며
‘REST한 API!’ 라는 말을 자주 썼다.
그렇다면, REST한 API라는 것을 정확히 알고 사용한 것일까?
REST한 API라는 희미했던 개념을 이번 블로깅을 통해 정리해보자.
REST ⇒ Representational State Transfer의 약자
아니, 그럼 Representational State Transfer가 뭔데? 라는 생각이 절로 든다.
풀어보면, ‘자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것’ 을 말한다.
즉, REST란
- HTTP URI (Uniform Resource Identifier)를 통해 자원 (Resource)을 명시하고,
- HTTP Methods (POST, GET, PUT, DELETE)를 통해
- 해당 자원 (URI)에 대한 CRUD Operation을 적용하는 것을 의미.
(CRUD Operation → Create, Read, Update, Delete)
REST의 구성 요소
- 자원 (Resource) : HTTP URI
- 자원에 대한 행위 (Verb) : HTTP Method
- 자원에 대한 행우의 내용 (Representations) : HTTP Message Pay Load
결국 REST한 API란?
REST의 원리를 따르는 API를 의미한다.
이 원리는 아래와 같은 규칙을 따라야 한다.
- URI는 동사가 아닌 명사를 사용하고, 대문자가 아닌 소문자를 사용한다.
❌ http://api.puddle.com/Walking
✅ http://api.puddle.com/walk
- 언더바 대신 하이픈을 사용한다.
❌ http://api.puddle.com/my_pet
✅ http://api.puddle.com/my-pet
- 마지막에 슬래시(/)를 넣지 않는다.
❌ http://api.puddle.com/pet/
✅ http://api.puddle.com/pet
- 파일 확장자는 URI에 포함하지 않는다.
❌ http://api.puddle.com/pama.jpg
✅ http://api.puddle.com/pama
- 행위를 포함하지 않는다. (Method로 전달 한다.)
❌ http://api.puddle.com/go-post/1
✅ http://api.puddle.com/post/1
위와 같이 REST API의 규칙을 따라 설계한 API를 REST한 API라고 말할 수 있다.