آموزش فریمورک جنگو رست

آنچه در این صفحه می خوانید:

معرفی Django REST framework

فریمورک Django REST یک ابزار قدرتمند و انعطاف پذیر برای ساخت API های وب است. این فریمورک منبع باز از کتابخانه ی پایتون و جنگو پشتیبانی می کند. یکی از تفاوت های اصلی بین Django REST framework و دیگر فریمورک ها این است که به توسعه دهندگان اجازه می دهد که ساختار URL را تعریف کنند و به یک تولید خودکار متکی نیستند. این یک ابزار انعطاف پذیر و کاملاً برجسته با معماری مدولار و قابل تنظیم است که امکان توسعه نقاط انتهایی API ساده ، کلید-کلید و سازه های پیچیده REST را ممکن می سازد. تنها وابستگی های فریمورک REST به پایتون و جنگو می باشد. همه بسته های دیگر اختیاری هستند، به عنوان مثال برای فیلتر و پشتیبانی OAuth یاMarkdown ،PyYAML ، defusexml برای Markdown ،YAML، انواع محتوا پشتیبانی می کند.

فریمروک Django REST شامل مجموعه گسترده ای از ویژگی های باکس است، اما کلاس نمای اصلی بسیار ساده است و فریمورک، به طور کلی، استفاده از آن آسان است. ایده اصلی پشت DRF تقسیم واضح یک مدل، ارائه کلی مانند JSON ،XML و غیره) و مجموعه ای از Class-Based-Views که می تواند برای برآوردن نقطه پایانی API خاص با استفاده از Serializer که نقشه برداری بین آنها را توصیف می کند، سفارشی سازی شود.

دلایلی که ممکن است بخواهید از فریمروک REST استفاده کنید:

  • Web browsable API یک قابلیت بزرگ برای توسعه دهندگان شما است.
  • خط مشی های تأیید اعتبار شامل بسته هایی برای OAuth1a و OAuth2.
  • سریالایزر ها که از منابع داده ORM و غیر ORM پشتیبانی می کند.
  • قابلیت تنظیم کردن راه پایین؛ در صورتی که به ویژگی های بیستری نیاز ندارید فقط از ویو منظم مبتنی بر عملکرد استفاده کنید.
  • مستندات گسترده و پشتیبانی عالی جامعه.
  • مورد استفاده و مورد اعتماد شرکت های معتبر بین المللی از جمله موزیلا، رد هت، Heroku و Eventbrite است.

ویژگی های Django REST framework

یکی از تفاوت های اصلی بین Django REST framework و دیگر فریمورک ها این است که به توسعه دهندگان اجازه می دهد که ساختار URL را تعریف کنند و به یک تولید خودکار متکی نیستند. علاوه بر این، Django REST Framework شامل مرورگر API داخلی برای آزمایش API تازه توسعه یافته است. API وب که با DRF توسعه یافته است غنی و قابل مشاهده در وب، پشتیبانی از طیف گسترده ای از انواع رسانه ها، احراز هویت و خط مشی های اهراز هویت. داده های نمایش API می توانند از نمایشگرهای مبتنی بر عملکرد استاندارد با نمایش کلاس قدرتمند برای عملکردهای پیچیده تر استفاده کنند. از آنجا که احراز هویت به عنوان مکانیسم ارتباط یک درخواست ورودی با مجموعه ای از اعتبارنامه های شناسایی یکی از ویژگی های اصلی است، DRF مجموعه ای از خط مشی های احراز هویت (از جمله OAuth1a و OAuth2) فراهم می کند و فرصتی برای توسعه طرح های سفارشی می دهد.

مزایای اصلی فریمورکREST جنگو:

  • سادگی، انعطاف پذیری، کیفیت و پوشش تست کد منبع
  • موتور سریال سازی قدرتمند سازگار با منابع داده ORM و غیر ORM
  • تنظیم و سفارش سازی آسان امیترها، پارسیزرها، اعتبار سنجندگان و تأیید کننده های احراز هویت
  • پشتیبانی از ModelResources
  • استفاده از هدرهای پذیرش HTTP
  • صفحه بندی ساده
  • انتشار ابرداده همراه با querysets
  • کلاس های مجوز و مدیریت کنترل
  • بکار گیری آن در شرکت های بین المللی شناخته شده از جمله موزیلا، Red Hat ،Heroku و Eventbrite
  • مستندات گسترده و پشتیبانی بزرگ جامعه

DRF با قابلیت انعطاف پذیری اجازه می دهد تا ابزارهای فریمورک را بر اساس خواسته های برنامه نویسان توسعه داده و سفارشی کند که به طور چشمگیری زمان توسعه را کاهش می دهد.

کاربرد Django REST framework

اما چرا باید استفاده از فریمروک REST Django را انتخاب کنم؟ چرا از کتابخانه دیگر یا حتی فقط از نماهای استاندارد جنگو استفاده نمی کنیم؟ پاسخ سریع به این سوال ساده است: بهره وری. همانطور که نشان می دهد، شما فقط به چند خط نیاز دارید تا endpoint در حال اجرا باشد. شما نه نیازی به جادو و نه به اتصال هزاران سیم دارید. سطح انتزاعی که DRF ارائه می دهد به اندازه کافی بالا است.

علاوه بر این، مزایای دیگری برای فریمروک Django REST وجود دارد:

  • مرورگر API HTML
  • تیم توسعه / پشتیبانی تمام وقت
  • سریال سازی داده های ORM و NON-ORM
  • انجمن
  • یکی از بهترین مستندات در بین لیست های پایتون
  • احراز هویت قابل حل با TheAuth ، theAuth2 و Social Auth
  • لیب های شخص ثالث

اکوسیستم اطراف DRF بسیار گسترده است، با طیف گسترده ای از کتابخانه ها که رفتار پیش فرض DRF را گسترش می دهد.

مثال های Django REST framework

بیایید یک مثال سریع استفاده از فریمورک REST برای ساخت یک API ساده پشتیبان مدل را بررسی کنیم. ما برای دسترسی به اطلاعات مربوط به کاربران پروژه خود، یک API نوشتن خواندن ایجاد خواهیم کرد. هر تنظیمات گلوبال برای یک API فریمورک REST در یک فرهنگ لغت پیکربندی واحد به نام REST_FRAMEWORK نگهداری می شود. با اضافه کردن موارد زیر به ماژول settings.py خود شروع کنید:

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}

فراموش نکنید که مطمعن شوید که rest_framework را نیز به INSTALLED_APPS خود اضافه کرده اید. ما اکنون آماده هستیم تا API خود را ایجاد کنیم. در اینجا ماژول اصلی urls.py ریشه پروژه ما آورده شده است:

from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets

# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ['url', 'username', 'email', 'is_staff']

# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)

# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

اکنون می توانید API را در مرورگر خود به آدرس /http://127.0.0.1:8000 باز کنید و 'API 'users جدید خود را مشاهده کنید. اگر از کنترل ورود به سیستم در گوشه بالا سمت راست استفاده می کنید، می توانید کاربران را از سیستم اضافه کرده، ایجاد و حذف کنید.

نظرتون درباره این نوشته چیه؟ عالیه بد نیست خوب نبود