Django REST API

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. Django REST API: शुरुआती गाइड

Django एक उच्च-स्तरीय पायथन वेब फ्रेमवर्क है जो तेजी से विकास और स्वच्छ, व्यावहारिक डिज़ाइन को प्रोत्साहित करता है। Django REST Framework (DRF) Django पर निर्मित एक शक्तिशाली और लचीला टूलकिट है जिसका उपयोग वेब API बनाने के लिए किया जाता है। यह लेख शुरुआती लोगों के लिए Django REST API बनाने की प्रक्रिया को विस्तृत रूप से समझाएगा।

REST क्या है?

REST (Representational State Transfer) एक आर्किटेक्चरल स्टाइल है जो वितरित हाइपरमीडिया सिस्टम बनाने के लिए बाधाओं का एक सेट प्रदान करता है। RESTful वेब सेवाएं HTTP विधियों (GET, POST, PUT, DELETE) का उपयोग करके क्लाइंट और सर्वर के बीच संचार करती हैं। REST API डेटा को JSON या XML जैसे प्रारूपों में प्रसारित करते हैं। वेब एपीआई

  • **संसाधन (Resources):** REST में, सब कुछ एक संसाधन है। उदाहरण के लिए, एक उपयोगकर्ता, एक उत्पाद, या एक पोस्ट एक संसाधन हो सकता है।
  • **HTTP विधियाँ:**
   *   **GET:** संसाधन प्राप्त करने के लिए।
   *   **POST:** एक नया संसाधन बनाने के लिए।
   *   **PUT:** मौजूदा संसाधन को अपडेट करने के लिए।
   *   **DELETE:** संसाधन को हटाने के लिए।
  • **स्टेटलेस:** प्रत्येक अनुरोध में सर्वर को अनुरोध को समझने के लिए आवश्यक सभी जानकारी होनी चाहिए। सर्वर क्लाइंट के बारे में कोई भी जानकारी संग्रहीत नहीं करता है।
  • **कैशेबिलिटी:** प्रतिक्रियाओं को क्लाइंट या प्रॉक्सी सर्वर द्वारा कैश किया जा सकता है ताकि प्रदर्शन में सुधार हो सके।

Django REST Framework (DRF)

Django REST Framework Django के लिए एक शक्तिशाली और लचीला टूलकिट है जिसका उपयोग RESTful API बनाने के लिए किया जाता है। DRF कई सुविधाएँ प्रदान करता है जो API विकास को सरल बनाती हैं, जैसे:

  • **सीरियलाइज़र:** डेटा को पायथन ऑब्जेक्ट और JSON जैसे प्रारूपों के बीच बदलने के लिए।
  • **व्यू:** API एंडपॉइंट को संभालने के लिए।
  • **राउटिंग:** URL को व्यू से मैप करने के लिए।
  • **ऑथेंटिकेशन और परमिशन:** API को सुरक्षित करने के लिए।
  • **ब्राउज़ेबल API:** API का परीक्षण और अन्वेषण करने के लिए एक वेब इंटरफ़ेस।

Django प्रोजेक्ट सेटअप

सबसे पहले, आपको एक Django प्रोजेक्ट और ऐप बनाना होगा। यदि आपके पास पहले से ही Django स्थापित नहीं है, तो आप इसे pip का उपयोग करके स्थापित कर सकते हैं:

```bash pip install django ```

फिर, एक नया प्रोजेक्ट बनाएं:

```bash django-admin startproject myproject ```

इसके बाद, एक नया ऐप बनाएं:

```bash cd myproject python manage.py startapp myapi ```

अपनी `settings.py` फ़ाइल में `myapi` ऐप को `INSTALLED_APPS` में जोड़ें।

```python INSTALLED_APPS = [

   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'myapi',

] ```

मॉडल बनाना

मान लीजिए कि हम एक सरल "टोडो" एप्लिकेशन के लिए API बना रहे हैं। हम एक `Todo` मॉडल बनाएंगे जिसमें एक शीर्षक और एक पूर्ण स्थिति होगी।

`myapi/models.py` में:

```python from django.db import models

class Todo(models.Model):

   title = models.CharField(max_length=100)
   completed = models.BooleanField(default=False)
   def __str__(self):
       return self.title

```

फिर, माइग्रेशन बनाएं और लागू करें:

```bash python manage.py makemigrations myapi python manage.py migrate ```

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

सीरियलाइज़र डेटा को पायथन ऑब्जेक्ट और JSON जैसे प्रारूपों के बीच बदलने में मदद करते हैं। हम `Todo` मॉडल के लिए एक सीरियलाइज़र बनाएंगे।

`myapi/serializers.py` में:

```python from rest_framework import serializers from .models import Todo

class TodoSerializer(serializers.ModelSerializer):

   class Meta:
       model = Todo
       fields = ('id', 'title', 'completed')

```

व्यू बनाना

व्यू API एंडपॉइंट को संभालते हैं। हम `Todo` मॉडल के लिए CRUD (Create, Read, Update, Delete) ऑपरेशन करने के लिए व्यू बनाएंगे।

`myapi/views.py` में:

```python from rest_framework.views import APIView from rest_framework.response import Response from rest_framework import status from .models import Todo from .serializers import TodoSerializer

class TodoList(APIView):

   def get(self, request):
       todos = Todo.objects.all()
       serializer = TodoSerializer(todos, many=True)
       return Response(serializer.data)
   def post(self, request):
       serializer = TodoSerializer(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)

class TodoDetail(APIView):

   def get(self, request, pk):
       try:
           todo = Todo.objects.get(pk=pk)
       except Todo.DoesNotExist:
           return Response(status=status.HTTP_404_NOT_FOUND)
       serializer = TodoSerializer(todo)
       return Response(serializer.data)
   def put(self, request, pk):
       try:
           todo = Todo.objects.get(pk=pk)
       except Todo.DoesNotExist:
           return Response(status=status.HTTP_404_NOT_FOUND)
       serializer = TodoSerializer(todo, data=request.data)
       if serializer.is_valid():
           serializer.save()
           return Response(serializer.data)
       return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
   def delete(self, request, pk):
       try:
           todo = Todo.objects.get(pk=pk)
       except Todo.DoesNotExist:
           return Response(status=status.HTTP_404_NOT_FOUND)
       todo.delete()
       return Response(status=status.HTTP_204_NO_CONTENT)

```

URL कॉन्फ़िगरेशन

अब, हमें व्यू को URL से मैप करना होगा। `myproject/urls.py` और `myapi/urls.py` फ़ाइलों को कॉन्फ़िगर करें।

`myproject/urls.py` में:

```python from django.contrib import admin from django.urls import include, path

urlpatterns = [

   path('admin/', admin.site.urls),
   path('api/', include('myapi.urls')),

] ```

`myapi/urls.py` में:

```python from django.urls import path from .views import TodoList, TodoDetail

urlpatterns = [

   path('todos/', TodoList.as_view()),
   path('todos/<int:pk>/', TodoDetail.as_view()),

] ```

API का परीक्षण

अब आप अपने API का परीक्षण कर सकते हैं। आप `curl` कमांड लाइन टूल, Postman, या ब्राउज़ेबल API का उपयोग कर सकते हैं।

  • **GET /api/todos/:** सभी टोडो आइटम प्राप्त करता है।
  • **POST /api/todos/:** एक नया टोडो आइटम बनाता है।
  • **GET /api/todos/{id}:** एक विशिष्ट टोडो आइटम प्राप्त करता है।
  • **PUT /api/todos/{id}:** एक विशिष्ट टोडो आइटम को अपडेट करता है।
  • **DELETE /api/todos/{id}:** एक विशिष्ट टोडो आइटम को हटाता है।

ऑथेंटिकेशन और परमिशन

ऑथेंटिकेशन और परमिशन आपके API को अनधिकृत पहुंच से बचाने के लिए महत्वपूर्ण हैं। DRF कई ऑथेंटिकेशन और परमिशन विकल्प प्रदान करता है, जैसे:

  • **TokenAuthentication:** टोकन-आधारित ऑथेंटिकेशन।
  • **SessionAuthentication:** सत्र-आधारित ऑथेंटिकेशन।
  • **BasicAuthentication:** बुनियादी ऑथेंटिकेशन।
  • **IsAuthenticated:** केवल प्रमाणित उपयोगकर्ताओं को अनुमति देता है।
  • **IsAdminUser:** केवल व्यवस्थापकों को अनुमति देता है।
  • **AllowAny:** सभी उपयोगकर्ताओं को अनुमति देता है।

उन्नत विषय

  • **पेजिनेशन:** बड़े डेटासेट को संभालने के लिए।
  • **फ़िल्टरिंग:** डेटा को फ़िल्टर करने के लिए।
  • **वर्जनिंग:** API के विभिन्न संस्करणों का समर्थन करने के लिए।
  • **दस्तावेज़ीकरण:** Swagger या ReDoc का उपयोग करके API को दस्तावेज़ित करने के लिए।
  • **टेस्टिकिंग:** pytest या unittest जैसे टूल का उपयोग करके API का परीक्षण करने के लिए।

बाइनरी ऑप्शन से संबंध (अतिरिक्त जानकारी)

हालांकि DRF सीधे तौर पर बाइनरी ऑप्शन से संबंधित नहीं है, लेकिन इसका उपयोग बाइनरी ऑप्शन ट्रेडिंग प्लेटफॉर्म के लिए API बनाने के लिए किया जा सकता है। उदाहरण के लिए, आप DRF का उपयोग करके एक API बना सकते हैं जो:

यह ध्यान रखना महत्वपूर्ण है कि बाइनरी ऑप्शन ट्रेडिंग में उच्च स्तर का जोखिम शामिल है, और यह सभी निवेशकों के लिए उपयुक्त नहीं है।

निष्कर्ष

Django REST Framework एक शक्तिशाली और लचीला टूलकिट है जिसका उपयोग RESTful API बनाने के लिए किया जा सकता है। यह लेख शुरुआती लोगों के लिए Django REST API बनाने की प्रक्रिया का एक बुनियादी अवलोकन प्रदान करता है। DRF की शक्तिशाली सुविधाओं और लचीलेपन के साथ, आप आसानी से जटिल और स्केलेबल API बना सकते हैं।

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер