Wprowadzenie.
W kolejnym cyklu artykułów o Django stworzę API, które będzie zgodne z regułami REST (ang. Representational State Transfer). REST definiuje określony format danych oraz określa, w jaki sposób odbywa się wymiana danych między serwerem a klientem. Ponieważ pisanie od podstaw wszystkich mechanizmów, które spełniałyby reguły REST, byłoby bardzo czasochonne, dlatego skorzystamy z gotowego frameworka Django REST Framework (DRF). Dokumentacja oraz wiele innych pomocnych informacji znajduje się na oficjalnej stronie frameworka https://www.django-rest-framework.org/
Mechanizmy DRF będę demonstrował na przykładzie obsłużenia prostej biblioteki, lecz zaznaczam, że nie nie chodzi mi o dokładne odtworzenie modelu biznesowego i niektóre przykłady mogą nie mieć sensu, lecz głównym celem, na którym chcę się skupić, jest pokazanie funkcjonalności tego frameworka.
Spis treści serii
- Django REST API cz. 1– Tworzenie nowego projektu
- Django REST API cz. 2 – ListAPIView
- Django REST API cz. 3 – Wbudowana strona logowania
- Django REST API cz. 4 – Widoki generyczne
- Django REST API cz. 5 – ListCreateAPIView i konfiguracja dostępu
- Django REST API cz. 6 – Uszczegóławianie odpowiedzi
- Django REST API cz. 7 – Określenie z góry wartości danych
- Django REST API cz. 8 – RetrieveDestroyAPIView
- Django REST API cz. 9 – RetrieveUpdateAPIView
- Django REST API cz. 10 – Nadpisywanie zachowań metod przed/po operacji zapisu/usuwania
- Django REST API cz. 11 – Rejestracja nowego użytkownika poprzez API
- Django REST API cz. 12 – Uwierzytelnianie przy pomocy Tokena
- Django REST API cz. 13 – Generowanie tokena dla istniejących użytkowników
Zakres artykułu.
- Tworzenie wstępnego projektu
Tworzenie wstępnego projektu
W pierwszym kroku stwórzmy nowy projekt Django.
$ django-admin startproject django_restapi
Następnie przejdźmy do folderu nowo utworzonego projektu.
$ cd django_restapi/
W kolejnym kroku stwórzmy środowisko wirtualne, tak abyśmy odseparowali się od innych pakietów, które mogą być zainstalowane w naszym systemie.
$ python3 -m venv myvenv
Teraz aktywujmy nasze środowisko wirtualne następującym poleceniem.
$ source myvenv/bin/activate
W środowisku wirtualnym zainstalujmy Django.
$ pip install django
Zainstalujmy również framework DRF Django REST Framework.
$ pip install djangorestframework
Teraz możemy wywołać polecenie django, tworzące naszą aplikację.
$ django-admin startapp restapiapp
W pliku settings.py standardowo dodajmy naszą aplikację i zapiszmy ten plik.
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'restapiapp', ]
Przeprowadźmy teraz migrację bazy danych.
$ python manage.py migrate
Na koniec uruchommy serwer i sprawdźmy, czy uruchamia się powitalna strona.
$ python manage.py runserver
Stwórzmy jeszcze superusera, ponieważ konto to przyda nam się podczas testowania naszego REST API.
$ Python manage.py createsuperuser
Spis treści serii
- Django REST API cz. 1– Tworzenie nowego projektu
- Django REST API cz. 2 – ListAPIView
- Django REST API cz. 3 – Wbudowana strona logowania
- Django REST API cz. 4 – Widoki generyczne
- Django REST API cz. 5 – ListCreateAPIView i konfiguracja dostępu
- Django REST API cz. 6 – Uszczegóławianie odpowiedzi
- Django REST API cz. 7 – Określenie z góry wartości danych
- Django REST API cz. 8 – RetrieveDestroyAPIView
- Django REST API cz. 9 – RetrieveUpdateAPIView
- Django REST API cz. 10 – Nadpisywanie zachowań metod przed/po operacji zapisu/usuwania
- Django REST API cz. 11 – Rejestracja nowego użytkownika poprzez API
- Django REST API cz. 12 – Uwierzytelnianie przy pomocy Tokena
- Django REST API cz. 13 – Generowanie tokena dla istniejących użytkowników