[Django REST Framework] 소개

moning02004·2020년 5월 18일
0

Django REST Framework

목록 보기
1/3

full-stack 프레임워크는 클라이언트와 서버를 모두 개발하는 툴이다. 하지만 프론트엔드 프레임워크가 존재하기도 한다. 예를 들면, Angular, React가 있다. 추가로 애플리케이션 개발 도구인 Android studio나 Ionic, React-native 등이 있다. 이에 대한 서버를 구현하기 위해서는 API로 서버를 구축하여 사용한다.
API 방식도 여러가지 있지만 REST API를 구축할 수 있는 Django REST Framework를 알아보자.

소개

  • REST API를 구축하기 위해서 사용한다.
  • Django 프레임워크이므로 기본적인 기능과 구현이 이미 되어 있다.
  • HTTP 메서드를 모두 사용한다.
  • 대개 JSON 형식으로 응답한다.

장점

  • HTTP를 따르고 있어 사용하기 쉽다.
  • 리소스, 행위마다 URI를 가지고 있어 관리하기 편하다고 생각한다.

단점

  • 필요한 정보만큼 API를 호출해야 한다.

선택한 이유

  • 리소스를 관리하는 데 나누어져 있어 편리하다고 생각했다.
  • 비교되고 있는 graphQL은 엔드 포인트가 하나이기 때문에 원하는 정보를 마음대로 가지고 올 수 있지만 명확?성이 없어서 REST를 선택했다.

REST스럽다를 RESTful이라고 한다.

REST

무엇보다도 REST API를 구축하기 위해서는 RESTful한 것이 무엇인지 알아야한다.

  • Representation State Transfer
  • 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식

저런 제한조건이 있다고 한다...
먼저 규칙을 알아보자

디자인 가이드

  1. URI는 정보의 자원을 표현해야 한다.
    URI는 데이터의 리소스를 표현해야 한다.
    리소스에 사용되는 단어는 명사이고 소문자이어야 한다.

  2. 자원에 대한 행위는 HTTP 메서드로 표현한다.
    리소스에 get, create, edit과 같이 행위를 나타내지 말고 HTTP 메서드를 사용하여야 한다.

설계

  1. "/"는 계층 관계를 나타내는 데 사용한다.
    example.com/post/1 : 1번 게시글이다.
    example.com/1/post : User 1의 게시글 목록이다.
    먼저 쓰이는 리소스 이름은 다음 쓰이는 리소스를 포함한다는 의미이다.

  2. URI 마지막 문자로 슬래시(/)를 포함하지 않는다.

  3. 하이픈은 URI 가독성을 높이는데 사용한다.

  4. 밑줄은 URI에 사용하지 않는다.

  5. URI 경로에는 소문자가 적합하다.

  6. 파일 확장자는 URI에 포함시키지 않는다.

참고

https://slides.com/eungjun/rest
https://ko.wikipedia.org/wiki/REST
https://meetup.toast.com/posts/92

profile
Django

0개의 댓글