REST : REpresentational State Transfer 약어
REST가 디자인 패턴이 됨
API 설계의 중심에 자원(Resource)가 있고 HTTP Method를 통해 자원을 처리하도록하는 설계
REST 6가지 원칙
1. Uniform Interface
2. Stateless
3. Caching
4. Client-Server
5. Hierarchical system
6. Code on demand
RESTful하게 API를 디자인 하는 것
1. 리소스와 행위를 명시적이고 직관적으로 분리
- 리소스는 URI로 표현하는데 명사로 표혀할 것
- 행위는 http method로 표현하고 get, post, put, patch, delete를 분명한 목적으로 사용
2. Message는 Header와 Body를 명확하게 분리해서 사용
- Entity에 대한 내용은 body에 담기
- 서버가 행동할 때 판단의 근거가 되는 컨트롤 정보(api 정보, mime 타입)는 header에 담기
- header와 body는 http header와 http body로 나눌 수 있음 또는 http body에 들어가는 json구조로 분리 가능
3. API 버전을 관리할 것
- 특정 API를 변경할 시 하휘호환성을 보장
4. 서버와 클라이언트가 같은 방식을 사용해서 요청
- json이라면 json, form-data면 form-data로 같은 방식을 사용
- 즉 URI가 플랫폼 중립적이어야함
RESTful의 장점
1. Open API 제공이 용이
2. 멀티플랫폼 지원 및 연동 용이
3. 원하는 타입으로 데이터 송수신 용이
4. http 그대로 사용 가능
RESTful의 단점
1. 메소드가 crud 뿐
2. 분산환경에는 부적합
3. http 통신 모델에 한정
'SW ENGINEERING > Programing' 카테고리의 다른 글
Python Socket : 1대1 채팅 (0) | 2021.06.28 |
---|---|
Python Socket (0) | 2021.06.21 |
ERROR 처리 (0) | 2021.03.08 |
endpoint vs api (0) | 2021.03.02 |
Rainbow attack (0) | 2021.03.01 |
최근댓글