REST, RESTful API, HTTP API

사공 오·2023년 10월 28일
0

기술면접

목록 보기
2/3

REST

  • 네트워크 리소스를 정의하고 처리하는 방법을 설명하는 일련의 원칙을 기반으로 하는 아키텍처 스타일

  • 클라이언트와 서버가 데이터 주고받는 방식 → 정리한 원칙을 기반으로한 아키텍처 스타일

  • HTTP를 잘활용하기 위한 원칙을 기반으로한 아키텍쳐 (REST)

  • 직역하자면 자원(리소스)의 표현에 의한 상태 전달(REpresentational State Transfer)

  • URI와 HTTP method를 사용해서 자원과 행위를 표현한다.

  • API의 의미를 표현하기 쉽고 의미를 파악하기도 쉽다.

  • Client는 응답을 캐싱할 수 있어야 한다

  • 무상태(Stateless): 각 요청 간 클라이언트의 context가 Server에 저장되어서는 안 된다.


규칙 중 일부를 보자면

  • URI(자원)을 표현할 때 동사를 사용하지 않는다.
  • Collection에는 복수형 Document에는 단수형을 사용
  • 자원에 대한 행위에 대해 post get put delete 와 같은 HTTP Method를 동사로서 사용한다. (CRUD)

RESTful API

이러한 REST을 참고해서 설계한 API

HTTP API (REST 스타일의 API)

REST 스타일의 일부를 받아드린 API
REST의 목적은 성능이 아닌 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것으로 상황에 따라서는 HTTP API와 같은 REST를 차용한 API를 사용하는 것이 효율적이다.


예를 들어 로그인, 로그아웃 URI에 동사를 사용하지않으면 회원가입 및 탈퇴와 구분하기에 표현의 어려움이 있다. 아래처럼 사용할 경우 REST를 지키지 못하지만 의미는 더 통한다.

/login /logout (동사 사용)


https://youtu.be/NODVCBmyaXs?si=x8e0uDeJssZ4NNeg
https://youtu.be/Nxi8Ur89Akw?si=UePD8hh0O2wAQn4w

0개의 댓글