Django REST 프레임워크 소개 및 활용 방법
2023. 12. 8. 20:52ㆍ개발 문서/Django
728x90
반응형
Django REST 프레임워크 소개 및 활용 방법
1. Django REST 프레임워크 소개
- Django REST 프레임워크는 Django 기반의 웹 API를 빠르게 개발할 수 있도록 도와주는 강력한 도구이다.
- RESTful API 디자인 원칙을 따르며, 시리얼라이저, 뷰, URL 라우팅 등을 제공하여 효율적인 API 개발이 가능하다.
2. RESTful API의 기본 구성 요소
- 리소스(Resource): 데이터 또는 서비스에 대한 표현, URI로 식별된다.
- HTTP 메서드: 리소스에 대한 행위를 정의하는 메서드 (GET, POST, PUT, DELETE 등).
- 표현(Representation): 리소스의 상태를 나타내는 데이터 형식 (JSON, XML 등).
3. Django REST 프로젝트 설정
pip install djangorestframework
로 Django REST 프레임워크를 설치한다.INSTALLED_APPS
에'rest_framework'
를 추가하여 프로젝트에 활성화한다.
# settings.py
INSTALLED_APPS = [
# ...
'rest_framework',
]
4. 시리얼라이저 사용하기
- 시리얼라이저는 모델 인스턴스나 쿼리셋을 JSON 등의 형식으로 변환하고, 반대로 파싱하는 역할을 한다.
serializers.py
파일을 생성하여 시리얼라이저를 정의한다.
# serializers.py
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
5. API 뷰 작성하기
- API 뷰는 HTTP 메서드에 따라 요청을 처리하고 응답하는 역할을 한다.
views.py
파일에서 API 뷰를 작성한다.
# views.py
from rest_framework import generics
from .models import Post
from .serializers import PostSerializer
class PostListCreateView(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
6. URL 라우팅 설정하기
- URL 라우팅은 API 엔드포인트를 URL에 매핑하는 역할을 한다.
urls.py
파일에서 URL 패턴을 설정한다.
# urls.py
from django.urls import path
from .views import PostListCreateView
urlpatterns = [
path('posts/', PostListCreateView.as_view(), name='post-list-create'),
# 추가적인 URL 패턴들...
]
7. API 뷰에 권한과 인증 설정하기
- Django REST 프레임워크는 다양한 권한과 인증 방식을 지원한다.
permission_classes
와authentication_classes
속성을 사용하여 API 뷰에 적용한다.
# views.py
from rest_framework.permissions import IsAuthenticated
from rest_framework.authentication import TokenAuthentication
class PostListCreateView(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
permission_classes = [IsAuthenticated]
authentication_classes = [TokenAuthentication]
8. API 뷰에 필터링 및 정렬 추가하기
- 필터링과 정렬을 추가하여 API 결과를 원하는 대로 제어할 수 있다.
filters
및ordering
속성을 사용하여 설정한다.
# views.py
from rest_framework import filters
class PostListCreateView(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
filter_backends = [filters.SearchFilter, filters.OrderingFilter]
search_fields = ['title', 'content']
ordering_fields = ['created_at', 'views']
9. API 뷰에 페이징 적용하기
- 큰 데이터셋에 대한 응답을 관리하기 위해 페이징을 적용한다.
pagination_class
속성을 사용하여 페이징을 설정한다.
# views.py
from rest_framework.pagination import PageNumberPagination
class PostListCreateView(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
pagination_class = PageNumberPagination
page_size = 10
10. 결론
Django REST 프레임워크를 사용하면 빠르고 간편하게 웹 API를 개발할 수 있다. 시리얼라이저, API 뷰, URL 라우팅을 통해 강력한 RESTful API를 만들고, 다양한 기능들을 활용하여 권한, 인증, 필터링, 정렬, 페이징과 같은 기능들을 쉽게 추가할 수 있다. Django REST 프레임워크를 활용하여 강력하면서도 유연한 API를 구축할 수 있도록 학습하면 개발 생산성을 향상시킬 수 있다.
'개발 문서 > Django' 카테고리의 다른 글
Django의 bulk_create 메서드를 활용한 효율적인 대량 데이터 삽입 (0) | 2023.12.09 |
---|---|
Django 사용자 로그인및 권한 부여 (0) | 2023.12.09 |
장고 앱의 효율적인 구조와 모듈화 (0) | 2023.12.07 |
장고 보안: 웹 애플리케이션 보호 전략 (1) | 2023.12.06 |
Django ORM의 강력한 기능과 최적화 팁 (0) | 2023.12.05 |