RESTful API 정리

2022. 9. 18. 13:05·개발/Internet

RESTful API란 무엇이며 어떻게 작동할까요? 이를 이해하려면 먼저 API의 의미를 알고 REST와 RESTful의 뜻에 대해 알아야 합니다.

API란?

  • API는 Application Programming Interface를 의미합니다.
  • 이는 다른 소프트웨어 시스템과 통신하기 위한 규칙입니다.
    • 저 멀리에 있는 알 수 없는 누군가와 통신을 하고 싶다고 생각해보세요. 서로가 각자의 방식으로 통신 방식을 구현한다면 메시지를 주고 받을 수 없을 것입니다. 정확한 통신을 위한 일종의 규칙이 필요하겠죠. 이것이 바로 API의 역할입니다.
  • 웹 API는 클라이언트와 서버를 연결하는 게이트웨이라 할 수 있습니다.

REST란?

  • REST(Representational State Transfer)란 API 작동 방식을 구성하는 아키텍쳐입니다.
  • 2000년 로이 필딩(Roy Fielding)이 초기 인터넷 네트워크 통신 규칙으로 제안되었습니다.
  • REST 아키텍쳐는 모든 프로토콜과 독립적인 관계에 있지만. REST API를 구현하는 가장 일반적인 방법은 HTTP 프로토콜을 사용하는 것입니다.
  • REST API는 객체, 데이터, 서비스 등과 같은 클라이언트가 접근할 수 있는 리소스를 중심으로 설계됩니다.
  • 리소스는 URI라는 식별자를 갖고 있으며 이를 통해 각 리소스가 구분됩니다. 예를 들어, 고객의 주문을 처리하는 URI는 다음과 같을 수 있습니다.
    • https://adventure-works.com/orders/1
  • REST 아키텍쳐의 특징은 다음과 같습니다.
    • Stateless: 클라이언트 정보가 각 요청마다 독립적으로 처리되며 저장되거나 연결되지 않습니다.
    • Layered System: 서버는 보안, 로드 밸런싱 등 각 요청을 처리하는 계층화된 시스템으로 구성
    • Cacheability
    • Code on demand: 클라이언트는 특정 코드가 실행되도록 서버에 요청할 수 있습니다.

RESTful API란?

RESTful API란 위에서 정리한 REST 규칙을 잘 준수하는 API를 의미합니다. 일반적인 의미에서 RESTful API는 REST API와 동이한 의미로 사용됩니다. RESTful API는 다음과 같은 장점을 갖습니다.

  • Scalability
  • Flexibility
  • Independence

REST API 작동 방식

  1. 클라이언트가 서버에 요청합니다. 이때, 요청은 API 문서를 따라 서버가 이해할 수 있는 방식이어야 합니다.
  2. 서버는 클라이언트를 인증하고 요청 권한을 확인합니다.
  3. 서버가 요청을 수신하고 내부적으로 처리합니다.
  4. 서버는 클라이언트에 응답을 반환(요청 성공 여부 정보 포함)하고 클라이언트는 요청한 정보를 확인합니다.

REST API 요청의 구성

  • HTTP를 통해 구성된 REST API 요청은 다음과 같은 메서드를 사용합니다.
    • GET: URL의 리소스에 접근
    • POST: 서버에 데이터 전송
    • PUT: 서버의 기존 리소스를 업데이트하며 POST와 다르게 데이터는 하나만 생성
    • DELETE: 데이터를 삭제
  • HTTP 헤더
    • 헤더는 클라이언트와 서버 간에 교환되는 메타데이터
      • 예) 요청 헤더의 경우 요청과 응답 형식, 요청 상태 등의 정보를 제공

REST API 서버 응답의 예시

REST 원칙에 따라 서버 응답에는 다음 구성 요소가 포함됩니다.

  • 상태 표시줄: 요청 성공 또는 실패를 알려주는 3자리 숫자 코드
    • 200: 일반적인 성공
    • 201: POST 메서드 성공
    • 400: 서버가 처리할 수 없는 요청
    • 404: 리소르를 찾을 수 없음
  • 메시지 본문: 요청에 따른 데이터로 HTML, XLT, JSON 등의 형식으로 정보 전달
    • '{"name: Jeong", "age: 32"}'
  • 헤더: 응답에 대한 헤더 및 메타데이터

참고 자료

  • https://www.redhat.com/en/topics/api/what-is-a-rest-api
  • https://aws.amazon.com/what-is/restful-api/#:~:text=RESTful API is an interface,applications to perform various tasks

'개발 > Internet' 카테고리의 다른 글

서버 사이드 렌더링과 클라이언트 사이드 렌더링이란 무엇인가요?  (0) 2021.03.27
웹 호스팅이란 무엇일까?  (0) 2020.08.30
DNS란 무엇이며 어떻게 작동할까?  (0) 2020.08.27
'개발/Internet' 카테고리의 다른 글
  • 서버 사이드 렌더링과 클라이언트 사이드 렌더링이란 무엇인가요?
  • 웹 호스팅이란 무엇일까?
  • DNS란 무엇이며 어떻게 작동할까?
  • 브라우저란 무엇이며 어떻게 작동할까?
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
Klook.com
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
RESTful API 정리
상단으로

티스토리툴바