REST API / RESTful API

SEUNGJUN·2023년 11월 15일
0
post-thumbnail

REST?

REpresentational - 표현적인
State - 상태
Transfer - 전달

네트워크 리소스를 정의하고 처리하는 방법을 설명하는 일련의
원칙을 기반으로 하는 아키텍처 스타일

REST 아키텍처에 적용되는 제한 조건

  1. 인터페이스 일관성: 일관적인 인터페이스로 분리가 되어야 한다.
  2. 무상태(Stateless): 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안 된다.
  3. 캐시처리가능: WWW에서와 같이 클라이언트는 응답을 캐싱할수 있어야 한다.
    -> 잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability와 성능을 향상시킨다.
  4. 계층화(Layered System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.
  5. Code on demand (optional) - 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
  6. 클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.

URI 네이밍 규칙

  • 동사 보다는 명사를 사용해서 자원을 표현한다.
    -> /stores : 스토어들 모음
  • 자원 간 계층 관계를 표현하기 위해 "/" 를 사용한다.
    -> /stores/15523
  • URI 경로 마지막에는 '/'를 붙이지 않는다.
    -> /stores/15523/ (X)
  • (-) 기호를 사용해서 URI의 가독성을 향상할수 있다.
    -> /stores-names (O)
  • URI에는 가급적으로 밑줄은 사용하지 않는다.
    -> /stores_names (X) => /stores/names
  • URI에는 소문자를 사용한다.
  • URI에는 CRUD 함수의 이름을 사용하지 않는다.
    -> /getstore , /poststore (X)
    ===> /store + HTTP 메서드 GET, /store + HTTP 메서드 POST

RESTful API

위와 같은 규칙을 잘 지켜져 있으면 RESTful 하다라고 이야기 한다.

profile
RECORD DEVELOPER

0개의 댓글