RESTful API 이란?

🍉effy·2022년 2월 27일
0
post-thumbnail

RESTful API ?

(Respresentational State Transfer)

  • 웹 서비스를 만드는데 사용되는 제약의 모음
  • 웹에 존재하는 모든 자원 (이미지, 동영상, 텍스트 등 데이터)에 고유한 URI 를 부여하여 해당 자원에 대한 주소를 부여하는 것
    (URI ? 특정 리소스를 식별하는 통합 자원 식별자 를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스. URL 에 대한 상위 개념으로, URI 가 URL 을 포함한다.)

URI 는 정보의 자원(Resource) 을 표현해야 한다

  • 자원에 대한 행위는 HTTP method (GET, POST, PUT, DELETE) 로 표현해야 한다

📌 RESTful API

  • 웹 데이터 전송 방식 중 하나
  • API 의 엔드포인트 구조를 표현하는 방식으로, API 에서 전송하는 리소스를 URI 로 표현하고, 해당 자원에 행하고자 하는 의도를 HTTP method 로 정의
  • 각 엔드포인트는 리소스를 표현하는 고유의 URI 주소 를 가지고 있으며 해당 리소스를 행할 수 있는 행위를 표현하는 HTTP method 를 처리할 수 있게 된다

📝

first URI 주소 로 HTTP 메소드, 원하는 정보를 요청
second 엔드포인트의 기능 이 동작하면서 필요한 정보와 status code 를 클라이언트 서버로 보내줌

=== RESTful API 방식으로 웹 데이터가 전송


RESTful API 는 상황에 따라 path parameterquery string 을 통해 통신

1. Path parameters

1-1 RESTful API - GET

  • 필요한 상황에 따라, 내가 원하는 정보에 따라 URI 를 다르게 요청할 수 있다

1-2 RESTful API - POST, PATCH

1-3 RESTful API - DELETE

즉, Path parameter 를 사용하여 통신한다는 것은 API URI 로 통신하는 것
Client 입장에서는 API 명세서에 맞게 적절한 request body 를 보내고, response body 를 받으면 된다.
Server 입장에서는 받은 request 에 맞는 response 를 보내면 된다.

2. Query String

2-1 Query String (GET)

Query String 은 좀 더 복잡한 조건을 줘서 내가 원하는 결과물을 얻을 수 있다.
(Path parameter 는 정제되지 않은 데이터를 호출해온다)

📝 -id 라고 지정해주면 데이터베이스 내 데이터를 역순으로 호출해서 보여줄 수 있다!

페이지 네이션 (pagination) 의 같은 경우와 같이, 위처럼 범위르 지정해주는 경우에 사용할 수 있다

왼쪽의 경우, Path parameter => 모든 회원을 호출

👉🏻 오른쪽의 경우, Query string => 특정 조건을 주어 정제된 결과물을 호출 (only ID 1)


Path Parameter vs Query String

언제, 어느 경우에 써야 할까?

  • Path parameter : 원하는 조건의 데이터들, 혹은 하나의 데이터에 대한 정보를 받아올 때
  • Query string : filtering, sorting, searching 에 적절

🤔 어떻게 써야 할까?

  • 페이지 중심이 아닌, 데이터가 중심이 되어야 한다

📌 Status Code

  • status 코드는 상황에 맞게 전송을 해줘야 하기 때문에, status code 가 각각 어떤 의미를 반영하고 있는지 잘 알아두어야 한다

profile
Je vais l'essayer

0개의 댓글