TIL.48 Restful API

h986680·2021년 1월 22일
1
post-thumbnail

출저



REST 의 개념

Representational State Transfer

직역하면 대표적인 상태 전달이 되는데 이는 문서, 그림, 데이터등 소프트웨어가 관리하는 모든 것들을 가리키고, 이의 상태를 전달하는 것을 뜻한다.

한마디로, 소프트웨어 아키텍처의 한 형식으로 자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반을 말한다.

이는 좁은 의미로, HTTP를 통해 CRUD를 실행하는 API를 뜻한다.

REST 아키텍처에 적용되는 제한조건

  • 인터페이스 일관성
  • 무상태
  • 캐시 처리 가능
  • 계층화
  • Code on demand
  • 클라이언트 / 서버 구조


RESTful API

RESTful

REST의 비공식적 구현 가이드로 구체적인 가이드라인은 없다. 하지만, 보통 위의 REST 아키텍처를 따르는 구조를 RESTful 하다고 하며 RESTful API 와 같은 형식으로 많이 쓰인다.

API

Application Programming Interface

응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스이다.

특징

  • HTTP 표준을 기반으로 구현하여 이를 지원하는 프로그램 언어로 클라이언트, 서버를 구현가능 하게 한다.
  • 시스템을 분산해 확장성과 재사용성을 높여 유지보수 및 운용을 편리하게 한다.
  • 가장 큰 특장점은 Self-descriptiveness 로 API 그 자체만으로도 목적이 쉽게 이해가 된다.

설계규칙

  • URI는 정보의 자원을 표현해야 한다.
  • 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.

설계시 주의할점

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

    GET users/portfolios

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

    GET users/portfolios/ (X)

  3. 밑줄(_)은 URI에 사용하지 않고, 하이픈(-)은 URI 가독성을 높이는데 사용

  4. URI 경로에는 소문자가 적합하다.

  5. 파일 확장자는 URI에 포함시키지 않는다.

HTTP 응답 상태 코드



관련 기본 지식

URI (Uniform Resource Identifier)

인터넷에 있는 자원을 나타내는 유일한 주소

HTTP Method

HTTP request가 의도하는 action을 정의한 것

  • POST : POST를 통해 해당 URI를 요청하면 리소스를 생성
  • GET : GET를 통해 해당 리소스를 조회합니다. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져온다.
  • PUT : PUT를 통해 해당 리소스를 수정
  • DELETE : DELETE를 통해 리소스를 삭제

Payload

HTTP request에서 server로 보내는 데이터 (body)



0개의 댓글