📌 REST API
- Restful한 API를 말함
- 일련의 특징과 규칙 등을 지키는 API
- 쿼리스트링을 혼재해서 쓰기도 함
✅ 쿼리스트링
/shopping/products?name=hat
⭐ REST API의 특징
- 자원들은 각각의 독립적인 인터페이스를 가짐
ex) 웹페이지를 변경했다고 웹브라우저를 업데이트하는 일은 없어야 함
url 자원식별
표현을 통한 자원조작
- url과 HTTP 표준 메소드(GET, DELETE)등을 이용하여 자원을 조회/삭제 등 작업을 설명할 수 있는 정보가 포함되어야 함
# 잘못된 예시
url/getProduct
# 잘된 예시
url/Product
메소드 : GET
Self-descriptive messages
- HTTP header에 타입을 명시하고 각 메시지(자원)들은 MIME types에 맞춰 표현되어야 함
ex) application/json, text/csv, text/plain
HATEOAS 구조
- Hypermedia As The Engine Of Application State
- 하이퍼링크에 따라 다른 페이지를 표시해야 하며 데이터마다 어떤 URL에서 원했는지 명시해주어야 함
- 보통 href, links, link, url 속성 중 하나에 해당 데이터의 URL을 담아서 표기
✅ 2. Stateless
- HTTP 자체가 stateless하기 때문에 HTTP를 이용하는 것만으로도 만족
- REST API를 제공하는 서버는 세션을 해당 서버쪽에 유지하지 않음을 의미
✅ 3. Cacheable
- HTTP는 아무런 로직을 구현하지 않아도 자동적으로 캐싱이 됨
✅ 4. 클라이언트 - 서버 구조
- 서로 독립적인 구조를 가져야 함(HTTP 자동 만족)
✅ 5. Layered System
- Web기반 서비스는 보통 계층구조를 가지게 됨
⭐ REST API의 6가지 URL규칙
-
동작은 HTTP 메소드로만 해야하고 URL에 해당 내용이 들어가면 안됨
-
확장자 표시하면 안됨
-
동사가 아닌 명사
로만 표기
-
계층적인 내용을 담고있어야 함
-
소문자로만 쓰며, 언더바가 아닌 그냥 바( - )를 사용
-
HTTP 상태코드를 활용(200, 300)