Repersentational State Transfer
자원을 이름으로 구분하여 자원의 상태를 주고 받는 것.
자원 : 문서, 사진, 그림, 데이터 등 소프트웨어가 관리하는 모든 것을 HTTP URI로 명시한 것
예전에 있었던 웹서비스 전달 프로토콜인 SOAP는 메시지 송수신 시 헤더와 바디의 인코딩/디코딩 과정이 필수였다고 한다. 그래서 기본 HTTP로 메시지를 전달하면 원하는 기능에 비해 SOAP 프로토콜 처리의 오버헤드가 발생했다. -배보다 배꼽이 크다는 말 같음.
이를 해결하기 위해 새로 만든 구현 기술이 RESTful 웹서비스다.
즉,
HTTP 웹의 장점을 최대한 활용할 수 있는 네트워크 기반 아키텍쳐, 부수적인 레이어나 세션관리를 추가하지 않고도 HTTP 프로토콜로 데이터를 전달하는 프레임 워크다.
<단계>
1. HTTP URI를 통해 자원을 명시
2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)을 통해
해당 자원(URI)에 대한 CRUD operation을 적용

- HTTP 프로토콜의 인프라를 그대로 사용하여 REST API 사용을 위한 별도의 인프라를 구축할 필요가 없다.
- HTTP 프로토콜의 표준을 최대한 활용하여 추가적인 장점을 함께 가져갈 수 있게 해준다.
- HTTP 표준 프로토콜에 따르는 모든 플랫폼에서 사용 가능하다.
- Hypermedia API의 기본을 충실히 지키면서 범용성을 보장한다.
- REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
- 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화한다.
- 서버와 클라이언트의 역할을 명확하게 분리한다
- 자체적인 표준이 존재하지 않아 정의가 필요하다.
- HTTP Method 형태가 제한적이다.
- 브라우저를 통해 테스트할 일이 많은 서비스라면 쉽게 고칠 수 있는 URL보다 Header정보의 값을 처리해야하므로 전문성이 요구된다.
- 구형 브라우저에서 호환이 되지않아 지원해주지 못하는 동작이 많다. 예) 익스플로러
URI는 명사, 소문자 사용
URI 마지막에 슬래시(/) 포함 X
언더바(_) 대신 하이픈(-)
파일확장자는 URI 포함 X
행위는 포함하지 X
API 란 ?
Application Programming Interface
웹 API란 클라이언트와 웹 리소스 사이의 네트워크 통신을 위한 게이트웨이라고 생각하면 됨.
REST의 원리를 따르는 시스템을 말한다. 하지만 REST API를 사용한 것들 중 REST API 설게 규칙을 올바르게 지킨 시스템만 RESTful하다고 말할 수 있다.
GET /users/10
전체 데이터 또는 특정 하나의 데이터를 다룰 때, 리소스를 식별하기 위해 사용
GET /user?user_id=10
데이터의 좀 더 세부적인 속성을 조정, 세밀한 데이터 정렬, 데이터 필터링을 위해 사용
정보참고
좋은 글 감사합니다
좋은 글 감사합니다