[Computer Science] RESTful

김상현·2023년 9월 5일
0

CS

목록 보기
3/10
post-thumbnail

📌 REST란

REST(Representational State Transfer)는 효율적이고 안정적이며 확장 가능한 분산 시스템을 구현하는 소프트웨어 아키텍처 설계이다. 즉, REST는 HTTP를 잘 활용하기 위해 만들어진 아키텍처이자 원칙이라고 볼 수 있다.

📌 REST 특징

- http://api.example.com:8080/{Collection}
  • URI에 작성된 Resource를 보고 주고받을 정보에 대해 어느정도 예측이 가능하다
  • Collection은 일반적으로 객체들의 집합이기 때문에 복수명사(-s,-es)를 사용한다.
  • URI에서 동사를 사용하지 않는다.
  • 대신 자원에 대한 행위에 대해서 HTTP Method(GET, POST, PATCH, DELETE)를 사용한다.
예약 생성
- http://api.example.com:8080/reserves/create (X)
- [ POST ] http://api.example.com:8080/reserves (O)
예약 취소
- http://api.example.com:8080/reserves/delete (X)
- [DELETE] http://api.example.com:8080/reserves (O)

📌 REST 활용

  • REST의 모든 원칙을 지키지 않는다고 해서 API가 틀린 것은 아니다.
  • 오늘날 대부분의 REST API는 사실 REST를 따르지 않고 있다.
  • REST의 제약조건 중에서 특히 Self-descriptive와 HATEOAS를 잘 만족하지 못한다.
  • REST를 따를 것인지는 API를 설계하는 이들이 스스로 판단하여 결정해야 한다.
  • REST 원칙을 최대한 따르면서 아키텍쳐를 설계하지만 원칙을 지키지 않는것이 더 효율적인 상황이라면 원칙을 일부 지키지 않는 것을 허용하면서 개발하는 것이 중요할 것 같다.
profile
목적 있는 글쓰기

0개의 댓글