티스토리 뷰
RESTful 하다란 무엇일까
: REST의 원리를 잘 지키는 시스템을 RESTful 하다라고 한다.
RESTful한 API란?
: ‘각 구성요소들의 역할이 완벽하게 분리되어 있는 것’
URI는 각 리소스를 명확하게 인식할 수 있도록 용이한 표현방식을 가져야 한다.
각 리소스에 대한 행위를 HTTP 메소드를 이용하여 Uniform(일관성)하게 정의할 수 있어야 한다.
Uniform한 형식에 의해 제한 받는 세부 기능의 경우 JSON, XML 등을 이용하여 별도로 정의함으로써, 기능을 명확하게 분리할 수 있어야 한다.
그 중에서도 가장 중요한 부분은 ‘URI의 명확한 정의’ 이다.
어떻게 URI을 설계 해야 하는가
- 슬래시(/)를 이용해서 계층 관계를 표현한다.
- 여러 리소스들의 집합을 의미하는 컬렉션의 경우 복수형태(-s) 사용을 권장하고 있으며, 각 리소스들은 단수를 사용
- 언더스코어(_) 사용 자제
- 또한 URI는 호스트를 제외한 나머지 모든 요소에서 소문자를 사용 하는 것을 권장
- 파일 확장자는 URI에 미포함
- 명사 위주의 URI
REST 아키텍처에 적용되는 6가지 제한 조건
- 인터페이스 일관성 : 일관적인 인터페이스로 분리되어야 한다
- 무상태(Stateless): 각 요청 간 클라이언트의 콘텍스트가 서버에 저장되어서는 안 된다
- 캐시 처리 가능(Cacheable): WWW에서와 같이 클라이언트는 응답을 캐싱할 수 있어야 한다.
: 잘 관리되는 캐싱은 클라이언트-서버 간 상호작용을 부분적으로 또는 완전하게 제거하여 scalability와 성능을 향상시킨다. - 계층화(Layered System): 클라이언트는 보통 대상 서버에 직접 연결되었는지, 또는 중간 서버를 통해 연결되었는지를 알 수 없다. 중간 서버는 로드 밸런싱 기능이나 공유 캐시 기능을 제공함으로써 시스템 규모 확장성을 향상시키는 데 유용하다.
- Code on demand (optional) - 자바 애플릿이나 자바스크립트의 제공을 통해 서버가 클라이언트가 실행시킬 수 있는 로직을 전송하여 기능을 확장시킬 수 있다.
- 클라이언트/서버 구조 : 아키텍처를 단순화시키고 작은 단위로 분리(decouple)함으로써 클라이언트-서버의 각 파트가 독립적으로 개선될 수 있도록 해준다.
참고 :
wallees.wordpress.com/2018/04/19/rest-api-restful/
'ETC' 카테고리의 다른 글
[오브젝트] 객체분해 (0) | 2019.09.01 |
---|---|
[Objects] 객체와 의존성 (0) | 2019.08.19 |
[서베이몽키 API] Survey Monkey API 연동법 (0) | 2018.08.29 |
[카카오톡 챗봇] 플러스 친구 자동응답 API를 사용하여 챗봇 만들기 (18) | 2017.07.11 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- HTTPS
- HTTP
- nginx
- springboot
- JPA 엔티티
- 프록시 설정
- tomcat Ajp
- 엔진엑스
- JPA란
- jpa 값타입
- entityfactory
- spring boot http
- spring boot 2.1
- entitymanager
- JPA 영속성관리
- 의존성 사이클
- spring boot
- SSL
- plugin
- 자바 가상머신
- AJP
- entity type
- https 동시사용
- angular2
- spring boot 포트
- Spring
- spring jpa
- 플러그인
- exception종류
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함