DRF 튜토리얼 정독 시작 - Quickstart

hyuckhoon.ko·2023년 9월 27일
0

문제 해결을 위해 공식문서를 보거나, 컨벤션 도입 근거로 레퍼런스로 드문드문 읽었었다.
하지만 처음부터 끝까지 공식문서를 보며 직접 모든 실습을 코딩해보며 읽진 않았다.

Quickstart

특이하게도 HyperlinkedModelSerializer를 사용한다.

from django.contrib.auth.models import User, Group
from rest_framework import serializers


class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ["url", "username", "email", "groups"]


class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ["url", "name"]

튜토리얼 설명이 조금 아쉽다.

"Notice that we're using hyperlinked relations in this case with HyperlinkedModelSerializer. You can also use primary key and various other relationships, but hyperlinking is good RESTful design."

PK와 다른 값들을 기반으로 serializer를 정의할 수도 있지만, url 값들을 위한 직렬화의 경우, HyperlinkedModelSerializer가 좋다 라는 정도로 언급하고 있다.

의사결정의 흐름이 누락 돼 있어 아쉽다. 튜토리얼의 한계라 생각한다.
현업에서는 보통 어떤 문제가 있는데, 가독성/효율성
(그리고 상황에 따라 유니크한 url이라는 비즈니스 요구 사항 등)으로 HyperlinkedModelSerializer 사용하는 것이 더 낫겠다 와 같은 판단의 흐름이 있기 마련이다.

Q. views.py의 모듈 임포트 방식에 대해 의문이 있다.

# 튜토리얼
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer

# why not?
from .serializer import UserSerializer, GroupSerializer

장고는 독립된 앱과 앱 중심으로의 개발을 지향하는 것으로 알고 있는데,
최상위의 tutorial 앱부터 경로를 지정할 필요가 있을까?

0개의 댓글