TanzDev

RESTful API 본문

기록보드/TIL

RESTful API

Tanz-dev 2024. 4. 22. 21:24

API란?

📕 API (Application Programming Interface)

⇒ 쉽게 말해 어플리케이션과 프로그래밍적으로 소통하는 방법입니다.

CLI (Command Line Interface) - 명령줄로 소통하는 방법

GUI (Graphic User Interface) - 그래픽으로 유저와 소통하는 방법

API (Application Programming Interface) - 프로그래밍으로 어플리케이션과 소통하는 방법

  • 요청뿐만 아니라 응답까지 전체적인 것을 포함한 구조입니다.
  • 기계 ↔ 인간뿐만 아니라 소프트웨어 ↔ 소프트웨어간에도 수많은 소통이 존재합니다.

API를 이용해서 서로 소통하는 것

  • 미세먼지를 보여주는 웹 어플리케이션 ↔ 기상청 서버 (기상청 API)
  • 카카오 로그인이 있는 웹 어플리케이션 ↔ 카카오 서버 (Kakao API)
  • 유튜브 영상을 보여주는 웹 어플리케이션 ↔ 유튜브 서버 (Youtube API) </aside>

⇒ 이러한 소통에는 서로 약속된 형식이 필요 == API

RESTful API란?

📕 REST

Representational State Transfer

  • 웹에 대한 소프트웨어 설계 방법론입니다.
  • Hello, Roy Fielding
  • → 2000년 로이 필딩의 논문으로 처음 소개되어 널리 적용되었어요!
  • REST의미에 대해서는 여러 해석이 존재합니다.하나의 웹 페이지를 하나의 상태(State)로 본다면 유저가 링크를 입력하는 것은 상태 전이(State Transfer)가 일어나는 것이며→ 여러분의 생각은 어떠신가요~?
  • 이때 유저가 받는 하나의 상태는 특정한 표현(Representational)에 의해 조작된다는 개념
  • API를 만들기 위한 개념이 아닌 RESTful API로 우리가 사용하는 것입니다.

 

📕 RESTful API

  • 어플리케이션간 소통하는 방법에 REST적인 표현을 더한 것입니다.
  • ⇒ REST 원리를 따라 설계한 API이에요!
  • RESTful API로 작성하면 결과를 보지 않고 요청 형식만 보더라도 추론이 가능합니다.→ 새로운 article 생성→ article 목록 조회→ 1번 article 조회→ 1번 article 삭제
  • DELETE /articles/1/
  • GET /articles/1
  • GET /articles/
  • POST /articles/
  • 핵심 규칙
    • 자원 : URI로 표현
    • 행위 : HTTP Method로 표현
    • 표현
      • 자원과 행위를 통해 표현되는 결과물로 일반적으로 JSON 형식을 사용
      • URI는 동사가 아닌 명사의 나열로 사용→ POST /articles/ (O)
      • → POST /articles/create/ (X)
  • 따르지 않더라도 로직과 동작에는 아무런 이상이 없으나, 이 규칙을 따를 때 얻는 이득이 큽니다.
  • 일반적으로 GET POST PUT DELETE + PATCH를 사용합니다

'기록보드 > TIL' 카테고리의 다른 글

Serialization  (0) 2024.04.24
RESTful API에서 사용하는 JSON 형식  (0) 2024.04.23
장고 프로젝트 완성!  (0) 2024.04.19
장고 프로젝트중..3  (1) 2024.04.18
장고 프로젝트중..2  (0) 2024.04.17