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