django rest framework 시작하기 - 3

Kenneth·2022년 9월 20일
0

지난 글에서는 모델에 대해 알아봤습니다. 요번 글에서는 앞서 만든 모델을 서브하는 rest api를 만들어보겠습니다.

django "REST" framework

restful api에 대한 사전적인 정의나 더 자세하게 다룬 글은 찾아보시면 많고, 잘 모르신다면 한번 찾아보고 돌아오시는게 좋습니다. 이 글을 위해서 알아야 할 것은 django rest framework는 철저하게 rest api의 best practice대로 구현하기 위한 framework이며, 이를 따른다면 적은 코드로 많은 기능을 구현할 수 있다는 점입니다. 물론 요소마다 고도의 customization을 지원하지만, 기본적으로 best practice와 rest api에 대한 이해 없이는 좋은 결과물을 만들기도 어렵고 생산성도 낮아질 수밖에 없습니다.

request to response

서버는 요청을 받고 이에 대해 응답합니다. 이 과정에 관여하는 요소들의 정의나 단계 구분, 명명 등은 언어/프레임워크마다 꽤 다른 편이라 하나 이하의 framework만 다루어 보셨다면 헷갈리는 부분이 있을 수 있습니다.

요청은 네트워크를 거쳐 python web server (uwsgi, gunicorn, daphne, uvicorn 등) 로 들어옵니다. 이 웹 서버들은 WSGI (또는 ASGI)를 구현하고 있으며, 요청을 받아 python application으로 넘겨주는 역할을 합니다.

APIView / APIViewSet

django는 넘겨받은 요청에 대해 일단 settings.middleware에 정의된 미들웨어로 처리하고, 그 다음 urls에 정의된 router를 통해 해당 request를 처리할 APIView 또는 APIViewSet으로 넘겨줍니다. APIView/APIViewSet에는 인증, 권한, 쿼리셋, 필터, 페이지네이션 등의 다양한 부가기능을 정의할 수 있습니다. 그렇게 요청을 처리한 후 response를 웹서버로 넘겨주면 다시 웹서버에서 client로 전달합니다.

APIView는 django의 View class에 대응되는 DRF의 class입니다. (DRF APIView)

APIViewSet은 관련있는 View들을 묶어 편하고 일관성 있게 관리할 수 있도록 해줍니다. (DRF APIViewSet)

profile
개발자 + @

0개의 댓글