REST
- 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것을 의미
- 웹에서 통신을 위해 사용되는 구조
- 전송 관련 상태를 표현하는 구조
- 구성
1) 자원 - URI
2) 행위 - HTTP 메서드
3) 표현
API(Application Programming Interface)
- 사용자가 원하는 것에 도달할 수 있도록 한 인터페이스
- 애플리케이션 소프트웨어의 구현 방식을 몰라도 사용자가 API를 통해 사용 가능
- 정보 제공자와 정보 사용자 간 소통하기 위한 하나의 인터페이스 장치
REST API
- REST를 기반으로 서비스 API를 구현한 것
- RESTful하다 : REST 구조 스타일로 API가 이루어진 서비스
URI 기본 설계 규칙
- /는 계층 관계를 나타낼 때 사용
- URI 마지막 문자로 /를 포함하지 않는다
- 밑줄 대신 하이폰(-)을 사용
- 소문자로 작성(대문자 X)
- 파일 확장자 포함 X
- CRUD 행위 포함 X
리소스 원형 종류
- REST API에 URI를 디자인할 때 쓰는 모든 리소스들을 지칭한 말
- Document/Collection/Store/Controller로 구성
1) Document(단수) - DB의 row단위 컬렉션에서 하나의 객체 단위로 하는 단일 정보
2) Collection(복수) - Document들의 집합(관리 주체는 서버) ex-projects
3) Store(복수) - Document들의 집합(관리 주체는 클라이언트) ex-장바구니
4) Controller(복수)
- Collection, Store의 메서드 기능
- CRUD 메서드와 논리적으로 매핑되지 않는 어플리케이션의 고유한 행동
- 보통 URI 경로의 마지막에 표시 ~/register 등
리소스 원형 예시
- POST
localhost:3000/items/1/favorites/register -> item 번호가 1인 것을 장바구니 목록에 추가
items: Collection
1: Document
favorites: Store
register: Controller
HTTP 응답 상태 코드
-성공
[200] : 클라이언트의 요청 정상적으로 수행
[201] : 클라이언트의 리소스 생성 요청을 성공적으로 수행
-리다이렉션 메시지
[301] : 클라이언트가 요청한 리소스의 URI가 변경되었을 때 반환(Location header에 변경된 URI를 적어주어야 한다)
[304] : 캐시 목적으로 사용 / 해당 요청의 응답이 수정되지 않음을 의미
-클라이언트 에러 응답
[400] : 클라이언트의 요청이 부적절한 경우 사용
[401] : 클라이언트가 인증되지 않은 상태에서 보호된 리소스에 요청 시
[403] : 유저 인증과 관련 없이, 응답하고 싶지 않은 리소스 요청 시
[404] : 사용자 요청 URI 경로가 없는 경우 (Not Found)
[405] : 클라이언트가 요청한 리소스에에서는 사용 불가능한 메서드 이용
-서버 에러 응답
[500] : 서버 내부 오류
'Javascript > 웹 개발' 카테고리의 다른 글
클라이언트 사이드 렌더링/서버 사이드 렌더링 (0) | 2021.07.20 |
---|---|
동기/비동기 (0) | 2021.07.20 |
타입스크립트 (0) | 2021.07.20 |
CORS (0) | 2021.04.17 |
[GIT] 개념 (0) | 2020.04.30 |