CS(Computer science) - 상식(RESTful API)

HJ-C·2023년 1월 2일
post-thumbnail

RESTful API

  • REST API에서 REST는 Representational State Transfer의 약자로 소프트웨어 프로그램 아키텍처의 한 형식이다. 즉 자원을 이름으로 구분하여
    해당 자원의 상태를 주고 받는 모든 것을 의미한다.

  • REST APU를 제공하는 웹 서비스를 'RESTful' 하다고 할 수 있다.

  • RESTful은 REST를 REST답게 쓰기 위한 방법으로 누군가 공식적으로 발표한 것은 아니다.

  • REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다.

  • HTTP Method를 통해서 해당 자원(URL)에 대한 CRUD를 적용
    - GET : 지정된 URL에서 리소스의 표현을 조회
    - POST : 지정된 URL에 신규 리소스를 생성
    - PUT : 지정된 URL에 리소스를 생성하거나 업데이트
    - PATCH : 리소스의 부분 업데이트
    - DELETE : 지정된 URL의 리소스를 제거


    REST의 특징

  1. 클라이언트 / 서버 구조
  • 클라이언트는 유저와 관련된 처리를, 서버는 REST API를 제공함으로써 각각의 역할이 확실하게 구분되고 일괄적인 인터페이스로 분리되어 작동할 수 있게 한다.
  • 서로 간 의존성이 줄어든다.
  1. 무상태성
  • REST는 HTTP의 특성을 이용하기 때문에 무상태성을 갖는다
  • 즉 서버에서 어떤 작업을 하기 위해 상태정보를 기억할 필요가 없고 들어온 요청에 대해 처리만 해주면 되기 때문에 구현이 쉽고 단순해진다.
  1. 캐시 처리 가능
  • 클라이언트는 응답을 캐싱할 수 있어야 한다. 캐시를 통해 대량의 요청을 효율적으로 처리할 수 있다.
  1. 계층화
  • 클라이언트는 대상 서버에 직접 연결되었는지 Proxy를 통해서 연결되었는지 알 수 없다.
  1. 인터페이스 일관성
  • 일관적인 인터페이스로 분리되어야 한다.


    세부 규칙

  1. 슬래시 구분자(/)는 계층 관계를 나타내는데 사용한다.

  2. URL 마지막 문자로 슬래시(/)를 포함하지 않는다.

  3. 언더바(_) 대신 하이픈(-)을 사용한다.

  4. 소문자를 사용한다.

  5. 파일확장자는 URL에 포함하지 않는다.


profile
생각을 기록하자

0개의 댓글