Meme's IT

[Django] API와 REST 본문

BackEnd/Django

[Django] API와 REST

Memez 2023. 10. 18. 10:10

API란?

애플리케이션과 프로그래밍으로 소통하는 방법
서로 다른 프로그램에서 요청과 응답을 받을 수 있도록 만든 체계
예를 들어, 냉장고에 전기를 공급할 때 직접 전기를 공급하기 위해 배선을 하지 않고
플러그를 소켓에 꽂으면 공급할 수 있음 → 여기서 소켓 or 플러그가 API의 역할

 

Web API

웹 서버 또는 웹 브라우저를 위한 API
보통 OPEN API를 활용한다

 

 


REST란? (Representational State Transfer)

API서버를 개발하기 위한 일종의 소프트웨어 설계 방법론
즉, ~~하자고 정해놓은 약속(규칙은 아님)

 

RESTful API

REST 원리를 따르는 시스템을 부르는 말
자원을 정의하고 자원에 대한 주소를 지정하는 전반적인 방법을 서술
← 각각 API구조가 너무 다르니까 우리 좀 통일해서 쓰자

 

 

 

REST에서 자원을 정의하고 주소를 지정하는 방법

  1. 자원의 식별: URI
  2. 자원의 행위: HTTP Methods(GET & POST
  3. 자원의 표현
    • JSON 데이터
    • 궁극적으로 표현되는 데이터 결과물

 

간단한 규칙들

  • 슬래시 구분자(/)는 계층 관계를 나타내는 데에 사용한다
    • 예를 들어 user가 가지고 있는 devieces를 조회하려면 GET user/{user_id}/devices
  • 하이픈(-)은 URL 가독성을 높이는 데 사용한다
  • 언더바(_)는 URL에 사용하지 않는다
  • URL에는 소문자만 사용한다
    • RFC3986(URI 문법 형식 표준)에서 대소문자를 구별하도록 규정
    • 대소문자에 따라 다른 리소스로 인식
  • 파일 확장자는 URI에 포함시키지 않는다
    • Accept header를 사용하여 확장자를 표현함
    • 예를 들어, GET articles/dog.jpg는 틀림
    • GET articles/dog HTTP/1.1 Host: articles Accept: image/jpg의 형식

'BackEnd > Django' 카테고리의 다른 글

[Django] RESTful API (2) 자원의 행위 / 표현  (0) 2023.10.18
[Django] RESTful API (1) URI과 URL  (0) 2023.10.18
[Django] 댓글 구현(N : 1)  (0) 2023.10.17
[Django] Query  (0) 2023.10.17
[Django] Fixtures  (0) 2023.10.17