웹 브라우저 API는 범용성이 크다. 개발을 쉽게 만들어준다.
인증 정책에 OAuth1, OAuth2 를 위한 추가적인 패키지가 추가되어 있는 경우
시리얼라이즈 기능을 제공해준다. (DB data -> JSON)
문서화 및 커뮤니티 지원이 잘 되어있다.
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"
}
실 사용시에는 만약 사용자 정보를 열람하는 URL이 /serializer/user/<user_id>/가 있고 해당 View에서는 user_id의 해당하는 모델 인스턴스의 정보를 리턴한다고 가정하자.
그렇게 되면 만약 우리가 /serializer/user/1/ 이라는 URL로 요청을 했을시에 user_id가 1인 사용자의 정보를 JSON형태로 응답받을수 있을것이다.
이는 사용자 프로필 페이지에 접근했을때 사용하는 View라고 하면 사용자 페이지의 들어갈때마다 해당하는 사용자의 user_id만 URL에 입력해주게되면 각 사용자의 정보를 JSON형태로 응답 받을 수 있을 것이다.
class UserSerializer(ModelSerializer):
class Meta:
model = User
fields = ("email", "name", "sex", "profile_image",)
DRF의 ModelSerializer를 사용해서 각 모델 인스턴스를 쉽게 직렬화 할 수 있게 된다. model_to_dict 필요없이!
모델 저장시에 데이터가 유효한지 검사할 수 있어서, DB 정보 저장시에도 Serializer를 가장 많이 이용한다.