Vývoj webových aplikací a API (Application Programming Interface) se neustále vyvíjí a s tím se mění i nástroje, které vývojáři používají. Django REST Framework (DRF) je výkonný a flexibilní toolkit pro stavbu webových API, který je založen na populárním webovém frameworku Django. V tomto článku se podíváme na základní kroky a nejlepší praktiky pro vytváření API s použitím Django REST Framework.
Základy Django REST Framework
Instalace a nastavení
Prvním krokem je instalace Django REST Frameworku do vašeho prostředí. Toho dosáhnete spuštěním příkazu pip install djangorestframework
. Po instalaci je potřeba přidat 'rest_framework'
do seznamu INSTALLED_APPS
v souboru settings.py
vašeho Django projektu. Tímto krokem zpřístupníte Django REST Framework ve vašem projektu.
Vytvoření modelu
API často pracuje s daty, která jsou uložena v databázi. Django umožňuje definovat strukturu těchto dat pomocí modelů. Model v Djangu je základním stavebním kamenem, který reprezentuje tabulku v databázi. Příklad jednoduchého modelu může vypadat takto:
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
author = models.CharField(max_length=50)
published_date = models.DateTimeField(auto_now_add=True)
Serializace dat
Serializery v Django REST Framework umožňují převádět složité datové typy, jako jsou querysety a modelové instance, do Python datových typů, které lze snadno převést do JSON. Vytvoření serializeru pro model Article
by mohlo vypadat takto:
from rest_framework import serializers
from .models import Article
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ['id', 'title', 'content', 'author', 'published_date']
Vytvoření viewsetů a routerů
Viewsety v Django REST Framework zjednodušují logiku, která je běžně obsažena ve view funkcích. Umí automaticky poskytovat operace jako jsou create
, retrieve
, update
a destroy
pro model. Pro model Article
může viewset vypadat takto:
from rest_framework import viewsets
from .models import Article
from .serializers import ArticleSerializer
class ArticleViewSet(viewsets.ModelViewSet):
queryset = Article.objects.all()
serializer_class = ArticleSerializer
Pro připojení viewsetů k URL, Django REST Framework poskytuje router, který automaticky směruje URL na správné viewsety. Ve vašem urls.py
souboru můžete router nastavit takto:
from django.urls import path, include
from rest_framework.routers import DefaultRouter
from .views import ArticleViewSet
router = DefaultRouter()
router.register(r'articles', ArticleViewSet)
urlpatterns = [
path('', include(router.urls)),
]
Testování API
Po nastavení modelů, serializerů, viewsetů a routerů je důležité vaše API otestovat. Django REST Framework nabízí vestavěný Browsable API, díky kterému můžete snadno procházet vaše API a testovat jednotlivé endpointy přímo z webového prohlížeče.
V tomto článku jsme prošli základními kroky vývoje API s použitím Django REST Framework. Od instalace a nastavení přes vytvoření modelů, serializace, až po vytvoření viewsetů a routerů. Django REST Framework je silný nástroj, který umožňuje vývojářům efektivně a rychle vytvářet RESTful API. S jeho pomocí můžete snadno stavět robustní a dobře strukturované webové aplikace a služby.