DRF란?

jeong_hyeon·2022년 5월 25일
0

Django_DRF

목록 보기
1/12
post-thumbnail

DRF란?

Django 안에서 REST ful API서버를 쉽게 구축할수 있도록 도와주는 오픈소스 라이브러리

RESTful이란?

Repersentational State Transfer의 줄임말

REST란?

HTTP의 URL과 HTTP method(GET, POST, PUT, DELETE)를 사용해서 API사용 가독성을 높인 구조화된 시스템 아키텍쳐(Framwork)이다.

하나의 URL로 최소 4가지의 HTTP Method를 전송할수 있다.

GET - 정보를 읽을때

POST - 정보를 추가할때

PUT,PATCH - 정보를 수정할때

DELETE - 정보를 삭제할때

이런식의 Method를 사용하여 URI를 설계한다.

DRF사용이유

  • 웹브라우저 API는 범용성이크며 개발을 쉽게 만들어 준다.
  • 인증정책에 OAuth1, OAuth2를 위한 추가적인 패키지가 추가되어있는겨우
  • 시리얼라이즈 기능을 제공(DB data → JSON)
  • 문서화 및 커뮤니티 지원이 잘되어있다.

Serializer란?

Serializer = 직렬화

DRF에서 Serializer란 말 그대로 직렬화 하는 클래스

사용자의 DB안에 사용자 프로필사진 이메일 이름 성별이 있다고 가정한다면 사용자 모델 인스턴스를 JSON형태 혹은 Dictionary형태로 직렬화 할수있다.

user = User(email = "user@user.user", name = "user", sex="Female", profile_image = "user.png")
UserSerializer(user).data{
	"email" : "user@user.user", 
  "name" : "user",
  "sex" : "female",
  "profile_image" : "user.png"
 }

위와 같은 사용자가 있다면 DRF의 Serializer를 통해 모델 인스턴스를 직렬화 할수있다.

실 사용시에 만약 사용자 정보를 열람하는 URL인

/serializer/user/<user id>/

가 있고 해당 View에는 user_id의 해당하는 모델 인스턴스의 정보를 리턴한다고 가정 하자

그렇게 되면 만약 우리가

/serializer/user/1/

이라는 URL로 요청했을시 user_id 가 1 인 사용자의 정보를 JSON형태로 응답 받을수 있다.

이는 사용자 프로필 페이지에 접근했을때 사용하는 View라고 하면 사용자 페이지에 들어갈 때 마다 해당하는 사용자의 user_id만 URL에 입력 해주게 되면 각 사용자의 정보를 JSON 형태로 응답받을수 있을것이다.

위와 같은 기능을 하는 Serializer를 ModelSerializer라고 부른다.

Django REST Framwork 설치

pip install djangorestframwork
INSTALL_APPS = [
	...
    'rest_framework', #add
]

0개의 댓글