안녕하세요 잠시 궁금한게 생겨서 질문드립니다. 장고 rest framework 를 이용중인

 
임창민

안녕하세요 잠시 궁금한게 생겨서 질문드립니다. 장고 rest framework 를 이용중인데요 보통 API를 짤 때 get post 별로 post 에서 필요한 field나 get 에서 return 해주는 field가 다르다면 serializer를 각각 짜는게 맞나요? 아니면 더 좋은 방법이 있나요? 어떤식으로 개발하시는지 궁금합니다 !!

  • Tae-lim Oh

    전 Serializer를 다르게 짭니다.

    Tae-lim Oh

    한가지 Model에 대해서도 필요에 따라 너댓가지 Serializer를 짜기도 합니다.

    Yuk Seungchan

    보내주는 데이터가 많이 다른경우라면 나눠서 만드는게 편하고 아니라면 serializer instance를 만들 때 exclude_fields를 받아서 필요한 부분만 return하게 해도 됩니다. 또 data를 호출할 때 type에 따라 다르게 return하게 만들어도 됩니다.

    임창민

    헠 진짜 감사합니다 ㅜㅜ exclude_fields에 대해서도 알아볼게요

    임창민

    그럼 Foreign Key 를 추가할때 primary key로 추가하고 get 할때는 전체 데이터를 받아보고 싶은 상황이라면 serializer를 다르게 짜야 할까요?

    Yuk Seungchan

    무슨말인지 이해가 잘안가서..

    이거 예전에 제가 짠건데 참고하세요.

    임창민

    감사하므미다

    박영록

    foreign key는 보통 read_only를 걸어줍니다. 그러면 create/update할 때는 객체 id만 넣어주면 되고, get할 때는 다 가져오도록 할 수 있습니다.

    Donghyun Cho

    exclude_fields 는 사용하실때 꼭 필요한지 한번 더 생각해보고 사용하세요. 보통 black list보단 white list를 사용하시는 것이 좋습니다. 예를들면, api 버전 1을 만들어서 배포했는데 모델에 필드를 하나 추가해야 하는 경우 exclude_fields를 사용하시면 새로 추가된 필드가 자동으로 추가되겠죠. 그래서 확실한 필드 리스트(allowed_fields)를 만들어서 사용하는 것을 권장합니다.
    Api 기본 개념 잡으시려면 tastypie 라이브러리를 살펴보세요.

Advertisements