REST API란

sen·2023년 3월 8일
0

nodejs

목록 보기
3/3
post-thumbnail
  • REST(Representational State Transfer)
  • 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것
  • HTTP URL을 통해 자원을 명시하고, HTTP Method를 이용하여 CRUD 작업을 수행함. 이를 통해 클라이언트와 서버 간의 통신이 이루어지며, RESTful하게 설계된 API는 간편하게 사용할 수 있다.

REST API규칙

  1. URI는 동사보다는 명사를, 대문자보다는 소문자를 사용하여야 한다.
  2. URI는 슬래시로 계층 관계를 나타내는데, 단계별로 리소스를 지정하는 것이 좋다. 그리고 URI 마지막 문자로 슬래시를 포함하지 않는다.
  3. URL에 메소드와 확장자를 포함시키지 않는다.
  4. 언더바 대신 하이폰을 사용한다.

💡RESTFUL 하다는 의미는 무엇일까?

REST 원리를 따르며 REST API의 설계 규칙을 올바르게 지킨 시스템을 “RESTful하다”라고 한다.


💡REST API를 사용하는 이유

  • 서버와 클라이언트 간의 통신 방식을 표준화하여 개발이 쉬워진다.
  • HTTP 프로토콜을 사용하기 때문에 기존의 인프라를 사용할 수 있다.
  • 멀티 플랫폼 지원이 가능하다.
  • 데이터 포맷으로 JSON을 사용하기 때문에 다양한 언어에서 호환성이 좋다.

💡그 외로

  1. REST API에서는 인증 정보를 헤더에 담아 보낸다. 보안을 위해 HTTPS(HTTP Secure)를 사용하는 것이 좋다.
  2. REST API에서는 상태 정보를 기억하지 않는다. 세션 정보나 쿠키를 사용하지 않고, 요청에 필요한 모든 정보를 담아서 보내는데 이를 "Stateless"라고 한다.
  3. REST API에서는 Self-descriptive Message를 사용한다. 즉, 메시지 자체에 어떤 데이터인지, 어떤 형식인지 등의 정보가 포함되어야 한다.

이러한 규칙을 지키면서 REST API를 설계하면, 클라이언트와 서버 간의 통신이 규칙적이고 일관성 있게 이루어지며, API 사용자들에게 편리한 사용 경험을 제공할 수 있다. ✨

<용어설명>

  • API
    프로그램을 만드는데 필요한 어떤 기능을 직접 구현하지 않고 API 제공자들이 제공하는 데이터와 모듈 등 기능을 기져다 쓸 수 있게 해주는 것. 손님(내가 만든 프로그램), 웨이터(API),주방장(API 제공자)
  • Stateful
    stateful은 클라이언트가 자신의 이전 상태를 기록하고 있다는 것이고 서버는 사용자의 상태를 기억하고 있다가 유용한정보로 활용한다는 것이다. 더 쉽게 말하면 클라이언트와 서버가 서로 요청 및 응답에 대한 히스토리를 가지고 통신을 할 수 있는 스트림이 계속 유지되는 것을 말한다. 이 방식은 TCP, Socket, Message Queue 등에 적합하며 이는 서버의 부하가 크다.
  • Stateless
    stateless란 클라이언트가 서버에 요청할 때 이전의 상태를 소멸시키고 접속한다는 것이고 서버는 사용자의 히스토리를 기억하고 있지 않는다는 것이다. 즉, 한번의 요청과 응답이 이루어지면 클라이언트와 서버와의 연결선이 끊어지며 클라이언트와 서버가 주고받았던 데이터들은 다음 요청 및 응답에 존재하지않는 것이다. 이 방식은 주로 http에 사용되는 방식이며 이는 서버의 부하를 줄여준다.
profile
가보자고~!

0개의 댓글