Frontend

[WEB] RESTful API란?

뽀또들 2024. 8. 16. 15:57

API란?

API는 Application Programming Interface의 약자로, 프로그램 간에 데이터를 주고받거나 명령을 주는 방법을 정의한 규칙이다.

 

예를 들어, 웹사이트에서 "로그인" 버튼을 눌렀을 때, 해당 웹은 서버에 "사용자가 로그인을 하려고 합니다"라는 요청을 보낸다. 이 요청을 받은 서버는 사용자가 누구인지 확인한 후, "로그인이 가능합니다.(혹은 불가능합니다)"라고 응답한다.

 

이것이 바로 API가 하는 일이다.

 


REST란?

REST란 Representational State Transfer의 약자로, 웹 서비스 내에서 데이터를 주고받는 방식을 정의한 아키텍처 스타일이다.

 

REST를 따르는 API를 RESTful API라고 부르며, 이는 인터넷을 통해 데이터를 주고받는 매우 효율적인 방식이다.

 


RESTful API의 특징

무상태 (Stateless)

: 서버가 클라이언트의 요청을 처리할 때, 이전에 무슨 요청이 있었는지 기억하지 않는다.

 

각 요청은 독립적이며, 클라이언트는 필요한 모든 정보를 요청에 포함시켜야 한다. 예를 들어, 로그인한 유저의 토큰 값을 모든 요청에 포함시켜야 서버가 해당 유저의 정보를 알 수 있다.

자원 (Resource)

: RESTful API에서는 자원을 URI(Uniform Resource Identifier, 통합 자원 식별자)로 식별한다.

 

예를 들어, `/users/123`은 ID가 123인 사용자를 나타낼 수 있다.

HTTP 메서드

  • GET: 서버에서 데이터를 가져옴 (ex. 특정 사용자의 정보를 가져옴)
  • POST: 서버에 새로운 데이터를 추가함 (ex. 새로운 사용자를 등록함)
  • PUT: 서버의 데이터를 업데이트함 (ex. 기존 사용자의 정보를 수정함)
  • DELETE: 서버에서 데이터를 삭제함 (ex. 사용자를 삭제함)

응답 (Response)

: 서버는 요청에 대한 응답을 보낸다.

 

예를 들어, "사용자 정보를 요청한 경우" 서버는 JSON 형식으로 `{"name": "John", "age": 30}` 같은 데이터를 반환할 수 있다.

 

상태 코드 (Status Code)

:응답에는 상태 코드가 포함되어 요청이 성공했는지, 문제가 있었는지를 알려준다.

 

  • 200: 성공을 의미한다.
  • 404: 요청한 자원을 찾을 수 없음을 의미한다.
  • 500: 서버 오류를 의미한다.

RESTful API의 장점

  • 확장성: 여러 시스템에서 쉽게 확장할 수 있다.
  • 유연성: 다양한 프로그래밍 언어와 함께 사용할 수 있으며, 클라이언트와 서버가 독립적으로 동작할 수 있다.
  • 독립성: RESTful API는 특정 기술에 종속되지 않아 다양한 플랫폼에서 구현이 가능하다.