DRF 01 개념

Seungju Hwang·2020년 12월 14일
0

django

목록 보기
5/11
post-thumbnail

핵심 개념

API Server

프로그래밍을 통해 요청에 JSON을 응답하는 서버를 만들자

REST

Representational State Transfer의 약자
자원을 URI로 표시하고 HTTP Method를 이용하여 해당 자원의 상태를 주고 받는 것을 의미한다.

  • 구성요소

    • 자원(Resource) : URI
    • 행위(Verb) : HTTP Method GET, POST, PUT, DELETE ..
    • 표현(Representations) :
  • 특징

    • Uniform Interface : HTTP 표준만 따른다면 어떤 언어 혹은 어떤 플랫폼에서 사용이 가능한 인터페이스 스타일.
    • Stateless : 상태정보를 유지 하지 않는다. 서버는 각각의 요청을 완전히 다른 것으로 인식하고 처리한다. 이전 요청이 다음 요청 처리에 연관이 되면 안된다.
    • Cachable : HTTP의 기존 웹 표준을 그대로 사용하기 때문에 캐싱 기능 적용이 가능하다.
    • Self-descriptiveness : 자체표현구조. Rest API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조
    • Client-Server : 서로간의 의존성이 줄어들기 때문에 역할이 확실하게 구분되어 개발해야 할 내용들이 명확
    • Layerd System : 계층화. 클라이언트는 Rest API 서버만 호출가능.
  • 중심규칙

    • URI는 정보의 자원을 표현한다.

      URI (Uniform Resource Identifier) : 네트워크 상에 존재하는 자원을 구분하는 식별자ID로서 의미가 강합니다.

      URL (Uniform Resource Locator) : 네트워크 상에 존재하는 자원의 위치를 말합니다. 즉 자원의 어디에 있는지 나타내는 Where의 개념입니다.

    • 자원에 대한 (어떠한) 행위는 HTTP Method로 표현한다.

    • 슬래쉬는 계층 관계를 나타내는 데 사용한다.

RESTful API

프로그래밍을 통해 요청에 RESTful한 방식으로 JSON을 응답하는 서버를 만들자

  • API를 사용하는 이유
    • 내 데이터베이스에 없을 때
    • 그 기능을 직접 구현하지 않고 가져다 쓸 때
    • 내가 갖고 있는 데이터와 기능을 제공할 때
    • 웹 개발에서 server-client 간 소통을 구현하기 위해

JSON(JavaScript Object Notation)

JavaScript의 Object 자료 구조의 표현법을 따른 경량형 문자열 교환 포맷

언어에 독립적이며 많은 언어에서 JSON의 형태와 비슷한 자료 구조를 갖고 있기 때문에 직렬화 및 역직렬화가 용이하다. 최근에 가장 많이 사용하는 데이터 교환 형식이다.

HTTP 응답 코드

특정 HTTP 요청이 성공적으로 완료되었는지 알려주는 5개의 그룹

종류 확인

Django REST Framework(DRF)

DRF가 제공하는 기본 도구를 활용해 RESTful한 JSON 응답 서버를 만들자! → django는 이제 python 기반의 서버가 되었다!

  1. 직렬화(Serialization)
    • Model Instance / Queryset -----> JSON
  2. Django vs DRF
    • 응답
      • Django → HTML
      • DRF → JSON
    • Model
      • Django : ModelForm
      • DRF : ModelSerializer

기존 Django

동적인 웹페이지를 만들어주는 애플리케이션 구축(인스타그램,유투브,넥슾릭스)

  • 사용자의 요청을 받는다. (U)
  • 요청한 정보를 데이터베이스에서 꺼내거나 가공한다. (V)
  • 정보를 사용자가 보기 될 화면에 담아서 보내준다 (T)

DRF (Django REST Framework)

내가 가진 데이터 또는 기능을 외부에 제공하기 위한 인터페이스 구축

  • 사용자 요청을 받는다.
  • 요청한 정보를 데이터베이스에서 꺼내거나 가공한다.
  • 정보를 사용자에게 특정 포맷(JSON,XML,일반텍스트)으로 건내준다.
profile
기록하는 습관은 쉽게 무너지지 않아요.

0개의 댓글