Quickstart - Django REST framework (django-rest-framework.org)
DRF Django REST framework
프로젝트 셋업
django-admin startproject tutorial .
django-admin startapp quickstart
으로 장고 프로젝트를 시작해보자.
serializer
데이터를 통신 가능한 형태로 변환해주는 serializer를 정의해줄 것이다.
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializeer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'groups']
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ['url', 'name']
views
api가 두 어플리케이션이 상호작용할 수 있게 해주는 프로토콜의 총 집합이라면,
endpoint는 API가 서버에서 리소스에 접근할 수 있게 해주는 URL이라고 할 수 있다.
커뮤니케이션 채널의 한쪽 끝에 해당하는 URI
from django.shortcuts import render
from django.contrib.auth.models import User, Group
from rest_framework import viewsets, permissions
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
# Create your views here.
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
permission_classes = [permissions.IsAuthenticated]
class GroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
permission_classes = [permissions.IsAuthenticated]
urls
from django.contrib import admin
from django.urls import path, include
from rest_framework import routers
from tutorial.quickstart import views
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
path('admin/', admin.site.urls),
]
뷰 셋을 이용해서 뷰 셋을 라우터 클래스에 등록하기만 하면
API에 대한 URLconf를 자동으로 생성해줄 수 있다.
pagination
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS':'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE':10
}
페이지에 반환되는 객체 수를 제어하는 setting 부분
settings
INSTALLED_APPS = [
'rest_framework',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
testing our API
GET http://localhost:8000/users
'Computer Science > BackEnd' 카테고리의 다른 글
장고 DRF #2 | Django REST framework Requests and Responses (0) | 2022.09.09 |
---|---|
장고 DRF #1 | Django REST framework Serialization (0) | 2022.09.09 |
Django API #2 | A simple API with pure Django (0) | 2022.09.08 |
장고 | 장고 공식 문서 내용 정리 #1-8 Getting started : writing your first Django app, part 7 (0) | 2022.09.08 |
Django API #1 | Setup, Models and Admin (0) | 2022.09.06 |