Javascript/웹 개발

REST API

Frankie 2021. 4. 16. 23:00

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