API, REST API란?

Janet·2023년 1월 9일
0

Web Development

목록 보기
5/14

🔹 응용 프로그램 프로그래밍 인터페이스(Application Programming Interface, API)란?

  • 응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻 함. 즉, 애플리케이션(응용 프로그램)을 프로그래밍하는데 쓰이는 인터페이스임.

  • API의 역할은 클라이언트와 서버의 중간에서 소통의 규칙을 정하면서 효율적으로 정보가 오고 갈 수 있도록 만드는 것임. 즉, API는 데이터(정보)를 원활하게 주고받기 위한 방법이자, 주고받을 수 있는 데이터의 형식을 정하는 규격(매뉴얼)이라고 볼 수 있음.

🔹 REST API (Representational State Transfer API)란?

  • API를 사용하다 보니 개발자마다 소통의 규칙과 매뉴얼 등이 달라 겪는 문제들이 발생하였음. 예시로 A라는 개발자가 API를 만들어 놓고 퇴사를 하게 되면, 다음 후임자 개발자 B는 해당 API를 온전히 이해하기 어렵다는 것.
  • 따라서, API에도 체계가 필요하다는 관점에서 나온 방법이 REST API로, API의 규칙과 내용을 더 간단하고 쉽게 만든 것임. 즉, HTTP 요청을 보낼 때 어떤 URI에 어떤 Method를 사용할지 개발자들 사이에 널리 지켜지는 약속임.
  • Representational State Transfer(REST)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처이다. REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌다. REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있다. 쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있다.
  • 일종의 관행적인 형식과 약속이므로 기술에 구애받지 않음. 따라서 앱을 만들든 웹을 만들든 그것들을 어떤 언어를 써서 만들든 그 안에 소프트웨어 간에 HTTP로 정보를 주고 받는 부분이 있다면 이러한 형식, 규칙들을 준수하여 RESTful한 서비스를 만들 수 있음.
  • REST의 이름에서 알 수 있듯이 ‘Represent’‘표현하다’라는 의미인 것 처럼 요청 내용만 보고도 어떤 목적을 가진 요청인지를 직관적으로 이해 할 수 있음.

🔹 REST API Method

  • REST API는 데이터를 불러올 때 HTTP URI로 어떤 자원을 통해 데이터를 얻을 것인지 표시해 주어야 함. 이를 HTTP Method를 통해 해당 자원에 대해 행위(명령어)를 정함.
    1. POST: Create(생성하기) ex. 웹 페이지에 사진을 올리는 요청.
    2. GET: Read(읽어오기) ex. 웹 페이지에서 사진을 불러오는 요청.
    3. PUT(전체) / PATCH(일부): Update(변경하기) ex. 웹 페이지의 사진을 바꾸는 요청.
    4. DELETE: Delete(삭제하기) ex. 웹 페이지의 사진을 지우는 요청.

💡 예시: GET http://sshighschool.com/classes/2/students
1) 사용한 HTTP Method가 “GET”이므로 웹 페이지에서 데이터를 불러오는 요청임을 알 수 있음.
2) “http://sshighschool.com” URI을 통해 어디서 데이터를 가져올 것인지 알 수 있음.
3) “/classes/2/students” 하위 URI를 통해 얻고자하는 세부 데이터를 추측할 수 있음.

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

REST 원칙에 따라 서버 응답에 다음과 같은 주요 구성 요소를 포함해야 함.

  • 상태 표시줄 상태 표시줄에는 요청 성공 또는 실패를 알리는 3자리 상태 코드가 있다. 예를 들어, 2XX 코드는 성공을 나타내고 4XX 및 5XX 코드는 오류를 나타냄. 3XX 코드는 URL 리디렉션을 나타냄. 다음은 몇 가지 일반적인 상태 코드이다.
    • 200: 일반 성공 응답
    • 201: POST 메서드 성공 응답
    • 400: 서버가 처리할 수 없는 잘못된 요청
    • 404: 리소스를 찾을 수 없음
  • 메시지 본문 응답 본문에는 리소스 표현이 포함된다. 서버는 요청 헤더에 포함된 내용을 기반으로 적절한 표현 형식을 선택한다. 클라이언트는 데이터 작성 방식을 일반 텍스트로 정의하는 XML 또는 JSON 형식으로 정보를 요청할 수 있다. 예를 들어, 클라이언트가 John이라는 사람의 이름과 나이를 요청하면 서버는 다음과 같이 JSON 표현을 반환한다.

{"name":"John", "age":30}

  • 헤더 응답에는 응답에 대한 헤더 또는 메타데이터도 포함된다. 이는 응답에 대한 추가 컨텍스트를 제공하고 서버, 인코딩, 날짜 및 콘텐츠 유형과 같은 정보를 포함한다.

<출처/참고 자료>

profile
😸

0개의 댓글