
Django REST framework는 퓨어 Django를 사용해서 RESTful API를 만들기 쉽게 해주는 오픈소스 라이브러리다. 오늘은 DRF의 기본적인 것들을 알아보려고 합니다.
먼저 DRF를 쓰면 좋은 점들을 알아야합니다. 공식 사이트에는 다음과 같은 장점들이 있다고 합니다.
이외에도, DRF를 사용하면 추가적인 장점들이 있습니다.
파이썬 형식의 코드를 다른 네트워크로 전송하기 위해서는 코드를 직렬화 해야한다고 합니다.
Serializer가 DRF에서 코드 직렬화를 담당하는 클래스라고 합니다.
Serialzier는 Django의 Queryset, Instance를 JSON이나 XML 같은 content type로 변환하기 쉬운 파이썬 datatype로 변환해줍니다.
Model Serialzier도 존재합니다. 이것은 일반 Serializer에 몇 가지 기능이 더해진 것이라 합니다.
.create()와 .update()가 제공됩니다. Serializer + @ 지만 위의 기능들을 사용하지 않을 때는 기본 Serializer를 사용합니다.
위에서 계속 Validation을 언급했습니다. DRF에서는 데이터가 deserialize되면 그 데이터를 사용하기 전에 .is_valid()를 호출해야 합니다.
이 Validation은 두가지로 나뉘는데 Object level validation과 Field level validation으로 나뉩니다.
Object level validation
class PostSerialzier(serializers.Serializer)
def validate(self, data):
if data['title'] == data['description']:
raise serializers.ValidationError(" ~~~ ")
return data
Field level validation
class UserSerialzier(serializers.Serializer)
def validate(self, value):
if len(value) > 30:
raise serializers.ValidationError(" ~~~ ")
return value