IT/CS

[Web] Rest란?

Terriermon 2021. 4. 13. 22:27

참고: gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

Rest API

REST(Representational State Transfer)

  > HTTP URI(Uniform Resource Identifier) ▶ 자원(Resource) 명시

  > HTTP Method(GET, POST, PUT, DELETE) ▶ 자원에 대한 CRUD Operation 적용

REST 구성요소

- 자원(Resource): URI

- 행위(Verb): HTTP Method

- 표현(Representation of Resource): Client ▶ Server 요청 시 Server에서 응답을 보냄

 

 

RESTAPI

- REST 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스

- API: 시스템간의 상호작용을 위한 인터페이스

 

RESTful

- REST 아키텍처를 구현하는 웹 서비스를 나타내는 용어

ex) REST API를 제공하는 웹 서비스는 RESTful하다.

 

 

Restful 성숙도 모델

4단계로 구분

 

레벨 0

- HTTP POST method만 사용 ▶ Request Body 이용

- 매개변수로만 분기

- 단기 Endpoint

 

레벨 1

- HTTP GET, POST method

- Resource 지원 ▶ 고유한 URI 사용

- 복수의 Endpoint

 

레벨 2

- 일반적으로 웹 개발을 할 때 가장 많이 사용하는 레벨

- HTTP GET, POST, PUT ,DELETE: method를 각 동사에 맞춰서 사용(CURD)

- 요청 쿼리 매개변수 및 본문, 매개변수 지정

- GET 요청 시 HTTP Cache 활용 ▶ 멱등성 보장(항상 같은 결과 보장)

- 각 상황에 맞는 HTTP status code 응답

 

레벨 3

- APi 서비스의 모든 Endpoint를 최초 진입점이 되는 URI(서버 Root)에 요청 시, Hypertext Link 형태로 제공

- API 목록, API Endpoint 의존성 표현 ▶URI 변경에 Client는 유연하게 반응

 

 

'IT > CS' 카테고리의 다른 글

[프레임워크] Spring Framework  (0) 2021.04.14
[Web] 쿠키/세션/캐시  (0) 2021.04.13
[Java] Java란?  (0) 2021.04.12
[DB] MariaDB vs MySQL 차이점  (0) 2021.04.12
[알고리즘] ArrayList vs LinkedList  (0) 2021.04.05