아니 그래서 REST API 가 뭐냐고 물어보면 뭐라고 대답해야되냐고 ... ʅ( ⌓̈ )ʃ
일단 REST 는 ROA(Resource Oriented Architecture) 이다.
API 설계의 중심에 자원(Resource)이 있다.
그리고 REST 는
REpresentational State Transfer, 표현(representation) 에 의한 상태(State) 전달(Transfer)
이다. representation(표현)으로 해당 자원의 상태를 전달한다는데, 그러면 representation(표현)은 뭘까?
representation은 특정 시점에 자원(resource)의 상태(state)를 반영하고 있는 정보이다.
우리가 api 요청을 보냈을 때, 응답으로 오는 payload 가 바로 representation 이다.
응답은 resource 가 아니고 resource 의 state 를 표현! 한 것이다!
payload 뿐만 아니라, header 에 있는 Content-Type 과 같은 metadata 도 representation 에 속한다.
아 이제야 rest api 가 뭔지 좀 알겠다. 까먹지만 않으면 될텐데 ꉂꉂ(ᵔᗜᵔ*)
REST API 는 자원을 이름으로 구분하고 자원의 상태를 표현으로 전달한다.
REST API 는 HTTP 프로토콜을 그대로 활용한다 ← 필수는 아니라고 한다
- 자원을 URI 로 식별한다. URI 는 Uniform Resource Identifier.
- 자원에 대한 행위 (CRUD Operation) 을 HTTP Method - GET, POST, PUT, DELETE, HEAD 로 나타낸다.
- 요청의 성공·실패 여부를 HTTP Status Code 로 나타낸다.