Django - 2

chanloper·2024년 8월 29일

Django

목록 보기
4/8

Django REST Framework(DRF)를 이용하는 방법

  • Django DRF라고 하는 패키지를 확장하는 것으로 Django를 다를 수 있다.
    DRF == RESTful API를 Django로 구축하기 위한 확장 프레임워크이다.

HTTP Message

  • 요청 (Request)
    클라이언트가 서버로 전달해서 서버의 어떤 행동이 일어나게 하는 것

  • 응답 (Response)
    요청에 대한 서버의 답변

HTTP Message의 구조

요청과 응답은 구조가 비슷하다.

  • 시작 (Start Line)- 실행되어야 할 요청, 요청에 대한 성공 또는 실패
  • HTTP Header - 요청에 대한 설명, 본문에 대한 설명
  • 빈줄 (Blank Line) - 메타 정보의 끝을 알림
  • HTTP Body - 요청과 관련된 내용, 응답과 관련된 문서

HTTP Status Code

HTTP 요청에 대해 성공 여부를 나타내는 코드값이다.

  • 1XX : Informational Response
  • 2XX : Successful Response
  • 3XX : Redirection Message
  • 4XX : Client Error Response
  • 5XX : Server Error Response

API (Application Programming Interface)

  • 어플리케이션과 프로그래밍적으로 소통하는 방법
    요청뿐만 아니라 응답까지 전체적인 것을 포함한 구조

이외에도

  • CLI (Command Line Interface) - 명령줄로 소통하는 방법
  • GUI (Graphic User Interface) - 그래픽으로 유저와 소통하는 방법

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

  • 미세먼지를 보여주는 웹 어플리케이션 <-> 기상청 서버 (기상청 API)
  • 카카오 로그인이 있는 웹 어플리케이션 <-> 카카오 서버 (Kakao API)
    이러한 소통에는 서로 약속된 형식이 필요하다 == API

RESTful API

어플리케이션간 소통하는 방법에 REST적인 표현을 더한 것 (REST 원리를 따라 설계한 API)
일반적으로 GET , POST , DELETE , PUT, PATCH를 사용한다.

JSON

JSON (JavaScript Object Notation)

  • JS 표기법을 따른 일종의 데이터를 담는 형식
    XML, CSV, YAML 등의 형식도 있지만 일반적으로 JSON을 사용한다.

  • 사람이 읽기 쉽고 프로그래밍으로 파싱 (분석)하기 쉽다.
    파이썬의 dict처럼 key-value 형식의 구조를 가지고 있다.

최종적으로 클라이언트의 요청 (Request)에 JSON으로 응답하는 서버를 만들 것이다.

직렬화 (Serialization)

  • 객체 또는 데이터 구조를 저장, 전송을 위해 다른 포맷으로 변경하는 것

데이터의 구조는 유지하면서 추후 재구성이 가능한 포맷으로 변환한다.

  • 현재 Python 객체 형태인 Queryset 혹은 Model의 Instance를 전송 가능한 형태로 직렬화하여 JSON, XML, YAML 등의 형태로 변환하는 것

  • Django도 내부적으로 다른 데이터 포맷으로 쉽게 직렬화 할 수 있는 기능을 제공한다.

  • GET

  • POST

  • DELETE

  • PUT

profile
이것 뭐에요?

0개의 댓글