포스트

REST API

API

API란 응용 프로그램을 구축하고 통합하기 위한 정의 및 프로토콜의 집합이다. Application Programming Interface 라는 이름에서 알 수 있듯이, 웹 기준으로는 사용자나 클라이너트가 서버와의 상호작용을 위해 사용된다. 특정 규칙과 프로토클에 따라 시스템 간의 상호작용을 허용하며 정보와 뎅터를 주고 받을 수 있다. 즉, API를 사용하여 얻고자 하는 것을 서버가 이해하는 형식으로 요청한다는 말이다.

REST

REST는 웹 서비스를 개발하기 위핸 아키텍처 스타일로, HTTP 프로토콜을 통신 인터페이스로 사용하여 HTTP 메소드의 형태로 데이터를 주고 받는다.

REST의 원칙에 따르면 더욱 유연하며 안정적인 서비스를 개발할 수 있으며, 이를 위해 REST 아키텍처는 여섯 가지 주요 제약을 가진다:

  1. 클라이언트-서버 구조: 클라이언트 서버 웹 아키텍처의 주요 원칙은 관심사의 분리로, 요청을 보내는 클라이언트가 응답을 반환하는 서버와 서로 독립적이라는 것을 의미한다.
  2. 비상태성: 요청에 필요한 모든 정보(상태)는 클라이언트가 보내야 한다. 즉, 서버는 클라이언트-서버 통신 과정에서 어떠한 데이터를 보관하지 않아야 하며 이는 모든 요청은 별도의 독립적 요청이라는 의미를 가진다.
  3. 캐시: 캐시는 자주 접근하는 데이터를 보관하는 저장 구조이며 이를 통해 향상된 성능과 네트워크 효율을 얻는다. 캐시를 사용하면 클라이언가 서버로 보내야하는 요청을 줄이거나 아예 없앨 수도 있다.
  4. 일관된 인터페이스: 클라이언트와 서버가 정보를 공유할 인터페이스를 정의하여 모든 요청에 따르도록 한다. 클라이언트와 서버 사이의 통신 기준에 대한 일종의 계약서이다.
  5. 계층 시스템: 클라이언트와 서버 사이에 더 많은 구성 요소와 하위 시스템이 있을 수 있다는 것을 가정한다. 클라이언트는 섭와 직접 통신하고 있다고 단언할 수 없다.
  6. 요청 시 코드 실행: 선택적인 제약 조건으로, 서버가 클라이언트에게 실행 가능한 코드를 응답으로 보낼 수 있다.

구조

클라이언트 요청은 서버와 상호작용 하기 위한 모든 정보를 4개의 주요 요소들을 사용하여 구성해야한다.

  1. URL: 자원을 단순히 식별하는 것이 아닌, 어떻게 접근할 것인 가를 URL에 명시해야 한다.
  2. URI: 어떤 자원에 클라이언트가 접근을 요청한지를 포함한다.
  3. 매개변수: 서버의 응답에 영향을 주기 위해 클라이언트가 요청에 포함할 수 있다. REST에 서는 4개의 매개변수가 있다.
  4. 헤더: 추가 정보를 요청과 같이 전달할 수 있다.

HTTP 프로토콜

HTTP는 클라이언트와 서버의 상호작용 패턴을 정의하는 표준 통신 규약이다.

HTTP 메소드

HTTP와 HTTP메소드

  1. GET: 서버로부터 데이터를 받는 메소드이다.
  2. POST: 서버에 새로운 자원을 생성하는데 사용되는 메소드이다.
  3. PUT: 서버의 데이터를 갱신하는데 사용하는 메소드이다.
  4. PATCH: 서버의 데이터의 특정 부분을 수정하는데 사용되는 메소드이다.
  5. DELETE: 서버의 데이터를 삭제하는 메소드이다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.