REST API?
REST API는 웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고,
HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식이다
쉽게 말하면 웹에서 데이터를 주고받기 위한 방법(메뉴판)이다!
(저번 게시물에서 API 설명할때, 웹의 경우, REST API 라는 원칙에 따라 작성하면 좋다고 햇음)
REST API를 디자인 하는 방법
REST API를 작성할때는 지켜야 할 규칙이 있는데,
레오나드로 리차드슨 이라는 사람이 이 규칙을 4단계 모델로 만들었다고 합니다
REST 성숙도 모델은 총 4단계(0~3단계)로 나누어짐
실제로 3단계 까지 지키기 어렵기 때문에, 2단계까지만 적용해도 좋은 api 디자인이라고 볼 수 있구, 이런 경우는 HTTP API 라고도 부름~
0단계: HTTP 사용
- http 프로토콜만 사용해도 됨
- 아래그림은 모두 HTTP를 사용했군
1단계: 개별리소스와의 통신준수
- 모든 자원은 개별리소스에 맞는 엔드포인트 사용
- 엔드포인트 작성 시, 명사형태로 쓰자
- 아래그림은 각각 doctors/허준, slots/123 을 엔드포인트로 씀
- 바로 위그림은 /appointment를 엔드포인트로 씀
2단계: HTTP 메소드 원칙준수
- CRUD(Create, Read, Update, Delete) 에 맞게 HTTP 메소드를 쓰자
- 정보를 조회할때는 GET 메소드를, 생성할때는 POST 메소드를 쓴다
- PUT메소드는 요청마다 같은 리소스로 교체함(멱등성) 반면에, POST메소드는 새로운 리소스를 생성
- PUT메소드는 요청마다 같은 리소스로 교체함(멱등성) 반면에, PATCH메소드는 수정용도로 씀
- 아래 그림처럼 POST 메소드를 써서 요청한경우, 응답코드는 201 Created 로 명확하게 작성
3단계: HATEOAS 원칙준수
- 요청은 2단계와 동일하지만, 응답에는 리소스의 URI를 포함한 링크가 들어가야 함
- 아래 그림처럼 응답내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 함
'Web system' 카테고리의 다른 글
네트워크 심화(IP 패킷이란, TCP와 UDP 비교) (0) | 2023.05.01 |
---|---|
웹표준이란? (2) | 2023.04.27 |
API 가 도대체 뭔지 딱 정리해줌 (0) | 2023.03.29 |
SSR과 CSR 비교해봄 (0) | 2023.03.28 |
AJAX 란? (feat. 필요한 부분만 데려올거야) (0) | 2023.03.28 |