REST API 개념 / 구성 / 설계원칙

방충림·2023년 3월 13일
4

CS

목록 보기
8/26
post-thumbnail

REST API란?

REST API는 정보들이 주고받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식이다. 어떠한 기술이나 제품이 아니라 형식이기 때문에, 어떤 언어를 쓰든, 무슨 프레임 워크를 쓰든 이 폼에 맞춰 기능을 만들어 내면 된다.

API(Application Programming Interface)
소프트웨어가 다른 소프트웨어로부터 지정된 형식으로, 요청 명령을 받을 수 있는 수단.

프론트웹에서 서버에 데이터를 요청할 때 서비스들에서 오늘날 널리 사용되는 것이 REST형식의 API이다. 과거의 SOAP이랑 복잡한 형식을 대체한것이다.

REST는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처이고, REST API는 REST를 기반으로 서비스 API를 구현한 것을 의미`다.

REST는 자체 표현 구조로 구성되어 REST API만으로 HTTP 요청의 내용을 이해할 수 있다는 것이 가장 큰 특징이다. 즉, 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하는 것이다.

URI(Uniform Resource Identifier)
: 인터넷에 있는 자원을 고유하게 식별할 수 있도록 나타내는 주소. 자원을 구조와 함께 나타내는 것.
URI = URL(Uniform Resource Location) + URN(Uniform Resource Name)


REST API의 구성

구성 요소내용표현 방법
자원자원URI(엔드포인트)
행위자원에 대한 행위HTTP 요청 메서드
표현자원에 대한 행위의구체적 내용페이로드

REST API 설계 원칙

  1. URI는 리소스를 표현해야함
    리소스를 식별할 수 있는 이름은 동사보다는 명사를 사용한다.

  2. 리소스에 대한 행위는 HTTP요청 메서드로 표현함
    HTTP 요청 메서드는 클라이언트가 서버에게 요청의 종류와 목적(리소스에 대한 행위)을 알리는 방법이다.
    HTTP요청을 보낼 때 여러 메소드가 있는데, REST API는 그 중 주로 5가지 요청 메서드(GET, POST, PUT, PATCT, DELETE 등)를 사용하여 CRUD를 구현한다.

HTTP 요청 메서드종류목적페이로드
GETindex/retrieve모든/특정 리소스 취득X
POSTcreate리소스 생성O
PUTreplace리소스의 전체 교체O
PATCHmodify리소스의 일부 수정O
DELETEdelete모든/특정 리소스 삭제X
  • 사실 이것들의 기능이 특정 용도에 제한되어있지는 않다. POST하나로도 데이터를 읽고, 쓰고, 수정하고, 지우고까지 다 할 수 있지만 누구든 각 요청의 의도를 쉽게 파악할 수 있도록 "RESTful"하게 API를 만들기 위해서는 이들을 목적에 따라 구분해서 사용해야한다.
  • 그 중 POST, PUT, PATCH는 BODY라는 주머니가 있어서 정보를 GET이나 DELETE보다 많이, 그리고 비교적 안전하게 감춰서 실어보낼 수 있다.
  • PUT과 PATCH는 쓰는 곳마다 다르고 그냥 PUT으로 다 하는 곳도 있는데 알려진 정석은, PUT은 정보를 통째로 갈아끼울 때. PATCH는 정보 중 일부를 특정방식으로 변경할 때 사용한다.



참고문헌 : 자바스크립트 딥다이브, 얄코

profile
최선이 반복되면 최고가 된다.

1개의 댓글

comment-user-thumbnail
2023년 7월 4일

잘 보고 갑니다

답글 달기