Django REST फ्रेमवर्क के साथ Django में RESTful API बनाना

Django REST Framework (DRF) वेब API बनाने के लिए एक शक्तिशाली और लचीला टूलकिट है। यह RESTful API बनाने की प्रक्रिया को सरल बनाता है, सीरियलाइज़र, व्यूसेट और प्रमाणीकरण तंत्र जैसी सुविधाएँ प्रदान करता है।

Django REST फ्रेमवर्क सेट अप करना

इससे पहले कि आप RESTful API बना सकें, आपको Django REST Framework इंस्टॉल करना होगा और उसे अपने प्रोजेक्ट में जोड़ना होगा। DRF इंस्टॉल करने के लिए निम्न कमांड चलाएँ:

pip install djangorestframework

फिर, अपनी settings.py फ़ाइल में INSTALLED_APPS में 'rest_framework' जोड़ें:

INSTALLED_APPS = [
    ...,
    'rest_framework',
]

एक सरल API बनाना

आइए Book नामक एक सरल मॉडल के लिए API बनाएं। पहला चरण models.py में मॉडल को परिभाषित करना है:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=255)
    author = models.CharField(max_length=255)
    published_date = models.DateField()
    isbn = models.CharField(max_length=13)

    def __str__(self):
        return self.title

मॉडल को परिभाषित करने के बाद, डेटाबेस तालिका बनाने के लिए माइग्रेशन चलाएँ:

python manage.py makemigrations
python manage.py migrate

सीरियलाइज़र बनाना

DRF में सीरियलाइज़र Django मॉडल जैसे जटिल डेटा प्रकारों को JSON में परिवर्तित करते हैं। Book मॉडल के लिए सीरियलाइज़र बनाएँ:

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'

दृश्य और URL बनाना

DRF API दृश्य बनाने के दो मुख्य तरीके प्रदान करता है: फ़ंक्शन-आधारित दृश्य और वर्ग-आधारित दृश्य। यहाँ, हम APIView के साथ वर्ग-आधारित दृश्यों का उपयोग करते हैं:

from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
from .models import Book
from .serializers import BookSerializer

class BookListCreateAPIView(APIView):
    def get(self, request):
        books = Book.objects.all()
        serializer = BookSerializer(books, many=True)
        return Response(serializer.data)

    def post(self, request):
        serializer = BookSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

इसके बाद, urls.py में इस दृश्य के लिए URL कॉन्फ़िगर करें:

from django.urls import path
from .views import BookListCreateAPIView

urlpatterns = [
    path('books/', BookListCreateAPIView.as_view(), name='book-list-create'),
]

एपीआई का परीक्षण

सर्वर चालू होने पर, आप पोस्टमैन या कर्ल जैसे टूल का उपयोग करके http://127.0.0.1:8000/books/ पर API का परीक्षण कर सकते हैं। एक GET अनुरोध सभी पुस्तकों को पुनः प्राप्त करता है, और एक POST अनुरोध आपको एक नई पुस्तक बनाने की अनुमति देता है।

व्यूसेट्स के साथ API को बढ़ाना

अधिक संक्षिप्त और पुनः उपयोग योग्य कोड के लिए, आप DRF के ViewSet और Router का उपयोग कर सकते हैं। ModelViewSet का उपयोग करने के लिए API को अपडेट करने का तरीका यहां बताया गया है:

from rest_framework.viewsets import ModelViewSet
from .models import Book
from .serializers import BookSerializer

class BookViewSet(ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer

फिर, राउटर को urls.py में कॉन्फ़िगर करें:

from rest_framework.routers import DefaultRouter
from .views import BookViewSet

router = DefaultRouter()
router.register(r'books', BookViewSet, basename='book')

urlpatterns = router.urls

निष्कर्ष

Django REST फ्रेमवर्क मजबूत और लचीले RESTful API बनाना आसान बनाता है। सीरियलाइज़र, व्यू और राउटर का उपयोग करके, आप ऐसे API बना सकते हैं जो जटिल डेटा मॉडल को आसानी से संभालते हैं। इस आधार के साथ, अब आप DRF में कस्टम अनुमतियाँ, पेजिनेशन और प्रमाणीकरण जैसी उन्नत सुविधाओं का पता लगा सकते हैं।

लिंक
Python