Programming/장고(django) - API

장고(django)/ REST Framework(viewsets, permissons, routers 관련)

esoog Polaris 2023. 6. 8. 15:34
반응형


1. viewsets

from rest_framework import viewsets

: Django REST Framework에서 제공하는 `viewsets` 모듈은 ViewSet 클래스를 정의하고 관리하는 데 사용됩니다. ViewSet은 API 엔드포인트에 대한 CRUD(Create, Read, Update, Delete) 작업을 정의하고 처리합니다.

 

 

 

 

2. permissions

from rest_framework import permissions

: Django REST Framework에서 제공하는 `permissions` 모듈은 인증과 권한을 처리하는 데 사용됩니다. 권한 클래스를 정의하고 API 엔드포인트에 적용하여 액세스 제어를 설정할 수 있습니다.
`permissions.IsAuthenticated` 또는 다른 `permissions` 클래스를 사용하여 API 엔드포인트에 권한을 부여합니다. 예를 들어, `IsAuthenticated`는 인증된 사용자만 액세스할 수 있도록 합니다.

 

 

 

사용법

 

from rest_framework import viewsets
from rest_framework import permissions


class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""

    permission_classes = [permissions.IsAuthenticated]

* 해석하면 , (viewsets.ModelViewSet) : api root 페이지를 보여주며, 사용 권한은 인증된 사용자만.

 

 

 


3. routers

ViewSet을 URL에 연결하기 위해 `urls.py` 파일에 URL 매핑을 설정합니다.

 

from django.urls import include, path
from rest_framework import routers
from quickstart import views

router = routers.DefaultRouter()
# 기본 라우터 객체 생성
router.register('users', views.UserViewSet)
# 거기에 register('경로', 함수)를 등록
router.register('groups', views.GroupViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    path('', include(router.urls)),
# 해당 경로에 include(router.urls) 라우터를 url패턴으로 포함
]

위의 코드는 Django REST Framework에서 ViewSet과 권한을 설정하고 이를 URL에 연결하는 간단한 예시입니다. 실제로는 ViewSet 클래스에 필요한 속성과 동작을 정의해야 하며, URL 매핑 및 다른 설정도 필요할 수 있습니다. Django REST Framework의 공식 문서를 참조하여 자세한 사용법을 확인할 수 있습니다.

728x90