🐢
과제9) REST API 30초만에 이해하기
August 12, 2023
REST?
REST는 Representational State Transfer의 약자로, 자원을 정의하고 자원에 대한 주소를 지정하는 방법의 모음
REST 제약조건
REST의 제약조건을 제대로 지키면서 아키텍처를 만드는것을 RESTful이라고 한다.
- 클라이언트 - 서버 구조
- 서버는 API제공, 클라이언트는 세션, 로그인정보등을 직접 관리하는 구조로 각각의 역할이 확실하게 구분됨
- 개발해야할 내용이 명확해지고 서로간의 의존성이 줄어들게 됨
- 무상태성
- 서버는 클라이언트의 상태 정보를 저장하지 않음
- 캐시 가능
- REST는 HTTP의 웹표준을 그대로 사용하기 때문에, HTTP가 가진 캐싱 기능 적용 가능
- 계층화 시스템
- REST 서버는 다중 계층으로 구성될 수 있음
- 자체 표현 구조
- REST API 메시지만 보고 쉽게 이해할 수 있음
- 유니폼 인터페이스(uniform interface)
- URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일
REST API의 구성
- 자원(resource) : URI
- 행위(verb) : HTTP 메소드
- 표현(representations) : 리소스에 대한 표현(HTTP Message Body)
REST API 설계 규칙
- URI 설계 : URI는 웹에 있는 자원의 이름과 위치를 식별한다.
- 명사 사용 : URI는 명사를 사용하여야 하며, 세부적인 표현의 한계가 있을때는 동사를 포함할 수도있다.
- 동사는 HTTP 메소드로 표현 : 동사(자원에 대한 행위)는 HTTP 메소드는 GET, PUT, DELETE, POST로 표현하여야 한다.
- 복수형 사용
- 슬래시(/)로 계층관계 표현 : URI의 마지막에는 슬래시를 넣지 않는다.
- URI는 소문자로 작성
- 가독성을 높이려면 하이픈(-)사용 / (_) 사용금지