내일배움캠프를 진행하면서 제일 갈급했던건 각 용어에 대한 정의였다
막연하게 이야기했던 용어들을 정의하고 짚어보며 머릿속에 파편들을 개념차게 모으고싶다
오늘은 REST API와 RESTful API를 살펴봤다
REST(REpresentational State Transfer)란?
자원(resource)의 표현(representation)에 의한 상태 전달을 뜻함
자원 : 해당 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터, 해당 소프트웨어 자체 등)
표현 : 그 자원을 표현하기 위한 이름 (DB상 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함)
상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달한다. (JSON 혹은 XML을 통해 데이터를 주고 받는것이 일반적)
REST는 기본적으로 웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍쳐 스타일이다
REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나이다
REST의 개념
HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것 말한다
URI 와 URL의 차이점?
URL은 Uniform Resource Locator로 인터넷 상 자원의 위치를 의미함
반면 URI는 Uniform Resource Identifier로 인터넷 상의 자원을 식별하기 위한 문자열의 구성
URI는 URL을 포함하게 되며 URI가 URL보다 포괄적이 범위이고 자원을 구조와 함께 나타내기도 한다
GET - Read: 정보 요청, URI가 가진 정보를 검색하기 위해 서버에 요청
POST - Create: 정보 입력, 클라이언트에서 서버로 전달하려는 정보를 보냄
PUT - Update: 정보 업데이트, 내용을 갱신하기 위해 사용 (데이터를 전체 변경할때)
PATCH - Update: 정보 업데이트, 주로 내용을 갱신하기 위해 사용 (데이터를 일부만 변경할때)
DELETE - Delete: 정보 삭제
REST API?
REST API설계 시 중요한 항목
첫번째 = URI는 정보의 자원을 표현해야 함
두번째 = 자원에 대한 행위는 HTTP Method(GET, POST, PUT, PATCH, DELETE)로 표현한다
행위(Method)는 URI에 포함하지 않는다
슬래시(/)로 계층 관계를 표현한다
URI 마지막 문자로 슬래시(/)를 포함하지 않는다
밑줄(_)은 사용하지 않고, 하이픈(-)을 사용한다.
URI는 소문자로 구성한다
HTTP 응답 상태코드 사용
REST API와 RESTful API는 뭐가 다른거야?