프로그래밍 공부를 시작하다면 RESTful하다 REST에 맞는 API를 만들어야 한다는 등의 이야기를 여기저기서 듣고 보게 된다. 당연히 채용공고에도 많이 보..
그게 뭐냐 대체!
정리해보겠다
일단,
REST란 REpresentaional State Transfer의 약자
웹(HTTP) 설계의 우수성에 비해 제대로 사용되지 못하던 상황에 웹의 장점을 최대한 활용할 수 있게 하기 위해 만들어진 아키텍처
웹에 존재하는 모든 자원(이미지, 동영상, DB자원 등)에 고유한 URI를 부여해 활용하는 것으로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법론을 의미
이러한 REST의 형식을 따른 시스템을 RESTful이라고 부른다
http URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST,GET,PUT,DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미
자원기반의 구조(ROA: Resource Oriented Architecture) 설계의 중심에 Resource가 있고 HTTP Method를 통해 리소스를 처리하도록 설계된 아키텍처
REST 구성
- 자원(Resource) - URI(https://velog.io(URL)/write?id~(URI)) *URL안에 URI가 포함
- 행위(Verb) - HTTP method(POST,GET,PUT,DELETE)
- 표현(Representations)
특징
RESTful 하다는 것은 REST API 설계 가이드를 준수하며 만들었다는 것이다.
RESTAPI 설계가이드
- 리소스에 대한 행위는 HTTP Method(POST,GET,PUT,DELETE)로 표현
- /(슬래시)는 계층 관계를 나타낼때 사용한다
- URI에 명사 사용
- URI 마지막 문자에 /(슬래시)를 사용하지 않는다.
그렇다면 왜 RESTful API를 애용할까?