Django REST framework로 간단한 api 만들기!

조용민·2024년 3월 4일
post-thumbnail

django REST ramework (DRF)는 RESTful한 API를 쉽게 만들 수 있도록 해줍니다.  
지금부터 DRF를 사용해 CRUD (Create,Read,Update,Delete) 할 수 있는 간단한 API를 만들어 보았고 기록을 남깁니다. 저와 같이 학습하는분들께 도움이 되셨으면 합니다!

REST API란?

1. 환경 셋팅
virtualenv나 pyenv로 가상환경을 생성. 
python 3.11.1 django 5.0.2 환경에서 작업 진행

2. django와 django-rest-framework 설치
가상환경에 진입해 pip로 django와 django-rest-framework를 설치.

pip install django
pip install djangorestframework

3. project 생성

todo_api이라는 django project를 생성

django-admin startproject todo_api

4. todo app 생성
todo 앱을 생성

python manage.py startapp todo

5. settings.py 설정
settings.py에서 DRF와 만든 todo앱을 등록
ALLOWD_HOSTS는 develop 용이므로 모두 허용

6. Model 생성
Todo 모델을 생성
제목/내용/날짜

7. serializer 생성
Serializer란? 
queryset과 모델 인스턴스와 같은 복잡한 데이터를 json,xml 또는 다른 콘텐츠 유형으로 쉽게 변환할 수 있습니다. 받은 데이터의 유효성을 검사한 다음, 복잡한 타입으로 형 변환할 수 있도록 serializeation을 제공합니다. 


8. views.py 작성

DRF는 보통 사람들이 자주 사용하는 공통적인 view 로직을 그룹화 한 viewset을 제공합니다. 이를 통해 CRUD로직을 직접 만들지 않아도 기능들을 사용할 수 있습니다.

9. urls.py 작성
DRF는 url을 자동으로 맵핑해주는 router를 제공합니다. 앞서 생성한 viewset을 router에 연결하게 되면 자동으로 url을 맵핑해주어 사용자가 직접 url을 맵핑하지 않아도 됩니다.

위에서 router.register로  prefix를 'todo'로 설정 
router는 이를 바탕으로 url을 맵핑

여기서 django 버전이 4.x 이상이라면 기존에

from django.conf.urls import url,include

방식으로 작성한다면 아래와 같은 에러가 날 수 있으므로

아래를 참고하시면 될 것 같습니다.

 from django.urls import re_path as url,include


10. 실행/확인

작성이 완료됐다면 makemigrations,migrate 수행

python manage.py makemigrations
python manage.py migrate
python manage.py runserver 

런서버로 실행

python manage.py runserver 

localhost:8000 으로 들어오면 아래와 같은 화면이 보입니다.

todo/ 링크로 이동

Post 메소드로 /todo/uri에 요청이가고, 해당 정보가 저장됩니다.
이렇게 저장한 todo 객체의 정보가 json 형태로 반환되는것을 볼 수 있습니다.

테스트를 위해 글을 더 작성합니다.

GET/todo/1 요청을 통해 id가 1번 째인 todo 객체를 조회합니다.

PUT 메소드를 통해 수정, DELETE 메소드를 요청하여 삭제

이렇게 DRF로 RESTful한 API를 만들어봤습니다.

0개의 댓글