## REST
Representational State Transfer : 자원의 상태 전달 - 네트워크 아키텍처
커뮤니케이션에 대한 간단하고 표준화 된 접근 방식이다. 데이터 형식, 요청 형식을 지정하는 방법이 표준화되어있다.
1. Client, Server : 클라이언트와 서버가 서로 독립적으로 분리되어 있어야 한다.
2. Stateless : 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않는다.
ex) 햄버거 가게 치즈버거 주세요 → 치즈버거 하나와 콜라 주세요 → : 모든 요청에 대해서 새롭게 나가야 한다.
3. Cache : 클라이언트는 서버의 응답을 Cache(임시저장) 할 수 있어야 한다.
- 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮춘다.
4. 계층화 ( Layered System) : 서버와 클라이언트 사이에, 방화벽, 게이트웨이, Proxy 등 다양한 계층 형태로 구성이 가능해야 하며, 이를 확장할 수 있어야 한다.
5. 인터페이스 일관성 : 인터페이스의 일관성을 지키고, 아키텍처를 단순화시켜 작은 단위로 분리하여 클라이언트, 서버가 독립적으로 개선될 수 있어야 한다.
6. Code on Demand(Optional) : 자바 애플릿, 자바 스크립트, 플래스 등 특정한 기능을 서버로부터 클라이언트가 전달받아 코드를 실행할 수 있어야 한다.
CRUD
- CREATE - POST : 새로운 데이터 추가
- READ - GET : 데이터 조회
- UPDATE - PUT : 데이터 전체 수정 / PATCH : 데이터 일부 수
- DELETE - DELETE : 정보 삭제
REST API 설계
REST API의 구성 요소
- HTTP Method
- URL - 데이터 접근
- Reprensetation - 자원의 표현
REST API의 자원 표현을 위한 URL 설계 규칙
- 슬래시 구분자는 계층 관계를 나타내는데 사용한다.
- 마지막 문자로 슬래시를 포함하지 않는다
- 소문자만 사용
- 하이픈은 가독성을 높이는데 사용 -
- 밑줄은 사용하지 않는다 _
- 확장자를 표시하지 않음
- 리소스 간에 연관 관계가 있는 경우 : /리소스명/리소스id/관계된 다른 리소스명
- 동사 x 명사만 사용
- 복수형 사용
'Software Development' 카테고리의 다른 글
객체 지향 OOP(Object Oriented Programming) (0) | 2023.03.29 |
---|
댓글