Django 안에서 REST ful API서버를 쉽게 구축할수 있도록 도와주는 오픈소스 라이브러리
Repersentational State Transfer의 줄임말
HTTP의 URL과 HTTP method(GET, POST, PUT, DELETE)를 사용해서 API사용 가독성을 높인 구조화된 시스템 아키텍쳐(Framwork)이다.
하나의 URL로 최소 4가지의 HTTP Method를 전송할수 있다.
GET - 정보를 읽을때
POST - 정보를 추가할때
PUT,PATCH - 정보를 수정할때
DELETE - 정보를 삭제할때
이런식의 Method를 사용하여 URI를 설계한다.
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라고 부른다.
pip install djangorestframwork
INSTALL_APPS = [
...
'rest_framework', #add
]