drf패키지를 설치 할게요.
pip install djangorestframework
(or pipenv install djangorestframework
프로젝트 셋팅 파일은 아래와 같이 수정합니다.
THIRD_PARTY_APPS = [
"rest_framework",
]
INSTALLED_APPS = DJANGO_APPS + PROJECT_APPS + THIRD_PARTY_APPS
core/views.py 파일을 삭제할게요.
config/urls.py파일을 수정 할게요.
기존 작성 되었던 path("rooms/", include("core.urls")),
부분은 삭제해주세요.
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path("admin/", admin.site.urls),
path("api/v1/rooms/", include("rooms.urls")),
# 만약 api/v2/rooms/로 바뀌게 되면 뒤의 include의 내무 분자열도 version2라는 상태
# 변화를 명시적으로 해주어야한다. include('rooms.urls_v2')
# 아니면 앱안에 api라는 폴더를 만들고 분기시켜 v1, v2라는 폴더를 만들어서 관리할 수 도 있다.
# 만약 별도의 api폴더를 두고 아래에 v1, v2로 분기하면 views_v1.py or views_v2.py로 나눠 관리 할 수 도 있게 된다.
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
rooms 앱의 urls.py작성을 아래와 같이 할게요.
from django.urls import path
from . import views
app_name = "rooms"
urlpatterns = [path("list/", views.list_rooms)]
url을 잡아 줬다면 뷰를 잡아보도록 하조.
동일 디렉토리에서 뷰파일로 간 다음 아래와 같이 작업할게요.
여기서는 Funciton Based View's @api_view를 만들어 볼건데요.
GET요청을 urls.py를 통해 들어오면 처리 할 수 있게 되요.
만약 POST 요청을 처리하고 싶다면 POST를 적어주면 되겠조.
from rest_framework.decorators import api_view
from rest_framework.response import Response # 요청에 대한 응답을 정리하여 클라이언트에 던져주는 클래스
@api_view(["GET"])
def list_rooms(request):
return Response()
서버를 돌려서 웹페이지에서 확인 해볼게요.
만약 데코레이터의 인자로 DELETE를 넣어주면 이렇게 삭제 기능도 구현 할 수 있습니다.