DRF Restful API

3228 단어 djangodjango

Section 1. 백엔드와 프론트엔드

1. 백엔드 프론트엔드 분리 전

  • 백엔드가 response로 페이지 전체 코드(html)를 전달
  • 모든 request에 대한 응답으로 페이지를 새로 생성




2. 백엔드 프론트엔드 분리 후

  • 백엔드가 response로 데이터만을 전달 (Json, XML 형식 등)
  • 백엔드는 비지니스 로직에만 집중 가능하고 프론트엔드는 할 수 있는 동작이 다양해짐




3. 백엔드 프론트엔드 분리 구현

  • RESTful API 를 이용하여 프론트엔드와 백엔드는 data만을 주고 받을 수 있음 (json 형식)
  • Ajax 기술 구현 가능



Section 2. API

1. API (Application Programming Interface)

컴퓨팅 시스템끼리 의사소통하는 매개체(통신규약)

  • API 정의서(설명서) - 존재하는 api를 이용하기 위한 규칙을 정의하고 있음
  • API 사용자 - 원하는 서비스를 api 형식(정의서)에 맞게 요청하는 측
  • API 제공자 - api 서비스를 구축하고 응답하는 측 (서버 프로그램 등)



2. API 예시

  • 카카오 맵 API - 해당 가이드에 맞게 api 서비스 요청 메시지를 보내면 map 서비스를 제공받을 수 있음



3. API 정의 범위

  • API 의 동작 과정

    ① 정해진 규칙에 맞게 요청 메시지를 보냄
    ② 해당 규칙에 맞는 미리 정의된 비지니스 로직이 수행됨
    ③ 서비스 결과를 응답 메시지로 보냄

  • api가 위와 같은 순서로 동작할 때 넓은 개념으로 접근하면, 보통의 웹 동작 방식이라고 볼 수 있으며 라이브러리 함수의 호출 및 사용과도 비슷하다고 볼 수 있기 때문에 거의 모든 방식을 api 라고 생각함
    (정의된 함수를 '호출'하여 그 함수에 대한 기능을 사용 또는 제공 받는 것이므로)



Section 3. REST

1. REST (Representational State Transfer)

HTTP URI를 통해 자원(Resource)을 구분 및 표현(Represent)하고, HTTP Method(POST, GET, PUT, DELETE)로 해당 자원에 대한 CRUD Operation을 적용하기 위해 Json 형식 파일로 상태 정보(State)를 표현(Represent)하여 주고 받는(Transfer) 통신 프로토콜



2. REST 구성 요소

  • 자원 (Resource) - URI로 표현되는 자원 (ex /user/{userId})
  • 행위 (Verb) - HTTP Method(POST, GET, PUT, DELETE)
  • 표현 (Representation) - 자원에 대한 상태 정보를 표현 (CRUD 요청에 대한 응답이라고 보면 됨)



3. REST 6가지 원칙

    ① Uniform Interface
    ② Stateless
    ③ Cacheable
    ④ Self-descriptiveness
    ⑤ Client-Server
    ⑥ Hierarchy structure



4. REST URI 설계 원칙




Section 4. RESTful API

1. RESTful API

REST의 기본 개념 및 원칙을 지키며 수행되는 API 서비스



2. DRF (Django Rest Framework)

Django로 웹을 구현할 때 REST 기술(RESTful api)을 손쉽게 구현하도록 지원하는 프레임워크



3. DRF 설치

pip install djangorestframework
  • settings.py app 등록

좋은 웹페이지 즐겨찾기