django-rest-frameworkAan de slag met django-rest-framework


Opmerkingen

Django REST Framework is een toolkit voor het bouwen van web-apps. Het helpt de programmeur om REST API's te doen, maar het kan minder volwassen API-niveaus aan. Zoek naar Richardsons Maturity Model voor meer informatie over API-volwassenheidsniveaus.

In het bijzonder onderschrijft Django REST Framework geen specifieke lay-out op hypermedia-niveau, en het is aan de programmeur (of andere projecten, zoals srf-hal-json ) of zij een HATEOAS API-implementatie willen nastreven om hun meningen buiten het kader. Het is dus mogelijk om een HATEOAS API in Django REST Framework te implementeren, maar er zijn nog geen direct beschikbare hulpprogramma's.

versies

Versie Publicatiedatum
3.5.3 2016/11/07

Voorbeeld

Laten we een snel voorbeeld bekijken van het gebruik van REST-framework om een eenvoudige API met modelondersteuning te bouwen.

We maken een API voor lezen en schrijven voor toegang tot informatie over de gebruikers van ons project.

Alle algemene instellingen voor een REST-framework-API worden bewaard in een enkel configuratiewoordenboek met de naam REST_FRAMEWORK . Begin met het toevoegen van het volgende aan uw module 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'
    ]
}
 

We zijn nu klaar om onze API te maken. Hier is de root urls.py module van ons project:

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'))
]
 

U kunt de API nu in uw browser openen op http://127.0.0.1:8000/ en uw nieuwe 'gebruikers-API' bekijken. Als u het inlogbesturingselement in de rechterbovenhoek gebruikt, kunt u ook gebruikers toevoegen, maken en verwijderen uit het systeem.

Installeren of instellen

Voorwaarden

  • Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)
  • Django (1.7+, 1.8, 1.9, 1.10, 1.11)

Installeren

Je kunt pip om te installeren of het project klonen vanuit github.

  • pip :

    pip install djangorestframework
     
  • git clone :

    git clone git@github.com:tomchristie/django-rest-framework.git
     

Na de installatie moet u rest_framework toevoegen aan uw INSTALLED_APPS instellingen.

INSTALLED_APPS = (
    ...
    'rest_framework',
)
 

Als u van plan bent om de doorzoekbare API te gebruiken, wilt u waarschijnlijk ook de aanmeldings- en afmeldingsweergaven van REST Framework toevoegen. Voeg het volgende toe aan je root urls.py bestand.

urlpatterns = [
    ...
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]