[API] RESTful API

jinhengxi·2022년 5월 29일
0

WECODE

목록 보기
21/33

RESTful API란?

RESTful API는 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스이다.

API란?

애플리케이션 프로그래밍 인터페이스(API)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의한다. 우리와 같은 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성한다.
웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있다.

REST란?

Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처라고 한다.
REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있다. 쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있다.
RESTful API는 REST 특징을 지키면서 API를 제공한다는 의미이며, 어렵다면 "프론트엔드에서 백엔드 API를 호출할 url을 어떻게 만들것인가?"에 대한 이야기라고 생각하면 될 것 같다.

RESTful API를 사용하면 어떤 이점이 있을까?

확장성

REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정할 수 있다.

유연성

RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원하며, 각 부분이 독립적으로 발전할 수 있도록 다양한 서버 구성 요소를 단순화하고 분리한다.

독립성

API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있으며, 또한 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경할 수 있다.

RESTful API는 어떻게 작동할까?

RESTful API의 기본 기능은 인터넷 브라우징과 동일하다. REST API 호출에 대한 일반 단계에 대해서 알아보자

  1. 클라이언트가 서버에 요청을 전송, 클라이언트가 API 문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정
  2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인
  3. 서버가 요청을 수신하고 내부적으로 처리
  4. 서버가 클라이언트에 응답을 반환, 응답에는 요청이 성공했는지 여부를 클라이언트에 알려주는 정보가 포함, 응답에는 클라이언트가 요청한 모든 정보도 포함

RESTful API 클라이언트 요청에는 무엇이 포함될까?

RESTful API에는 다음과 같은 주요 구성요소를 포함하는 요청이 필요하다.

고유 리소스 식별자

-REST 서비스의 경우 서버는 일반적으로 URL(Uniform Resource Locator)을 사용하여 리소스 식별을 수행

메서드

-다음은 4가지의 일반적인 HTTP 메서드이다.

1.GET
클라이언트는 GET을 사용하여 서버의 지정된 URL에 있는 리소스에 액세스, GET 요청을 캐싱하고 RESTful API 요청에 파라미터를 넣어 전송하여 전송 전에 데이터를 필터링하도록 서버에 지시할 수 있음

2.POST
클라이언트는 POST를 사용하여 서버에 데이터를 전송, 여기에는 요청과 함께 데이터 표현이 포함, 동일한 POST 요청을 여러 번 전송하면 동일한 리소스를 여러 번 생성하는 부작용이 있음

3.PUT
클라이언트는 PUT을 사용하여 서버의 기존 리소스를 업데이트, POST와 달리, RESTful 웹 서비스에서 동일한 PUT 요청을 여러 번 전송해도 결과는 동일

4.DELETE
클라이언트는 DELETE 요청을 사용하여 리소스를 제거, DELETE 요청은 서버 상태를 변경할 수 있음 하지만 사용자에게 적절한 인증이 없으면 요청은 실패

HTTP 헤더

요청 헤더는 클라이언트와 서버 간에 교환되는 메타데이터이다. 예를 들어, 요청 헤더는 요청 및 응답의 형식을 나타내고 요청 상태 등에 대한 정보를 제공한다.

RESTful API 서버 응답에는 무엇이 포함되어 있을까?

일반적인 상태 코드

200: 일반 성공 응답
201: POST 메서드 성공 응답
400: 서버가 처리할 수 없는 잘못된 요청
404: 리소스를 찾을 수 없음

profile
Front-end developer

0개의 댓글