Building REST APIs

Installation

Najprv je potrebné nainštalovať modul django-restframework

$ pip install django-restframework

Následne do zoznamu nainštalovaných aplikácií v súbore settings.py treba pridať tento modul:

INSTALLED_APPS = [
    ...
    'rest_framework',
    ...
]

Okrem toho treba do súboru settings.py pridať ešte osobitnú konfiguráciu pre tento modul:

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.BasicAuthentication',
        'rest_framework.authentication.SessionAuthentication',
    ),
    'PAGE_SIZE': 10
}

Defining Serializers

Najprv vytvoríme tzv. serializér. Serializér je trieda, ktorá je zodpovedná za serializáciu a deserializáciu údajov do podoby napr. JSON formátu. Existuje niekoľko tried, ktoré sa za týmto účelom dajú využiť. S výhodou môžeme použiť triedu ModelSerializer, ktorá vytvorí serializér na základe existujúceho modelu. My v našej odvodenej triede len nastavíme niekoľko vlastností serializácie, ako napr. to, ktoré položky modelu majú byť serializovateľné.

Serializéry budeme vytvárať v osobitnom súbore s názvom serializers.py

Začneme vytvorením serializéru pre model Account:

class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = ('iban', 'balance')

Správanie serializéra vieme vyskúšať z prostredia iPython:

>>> from account.serializers import AccountSerializer

>>> account = Account.objects.first()
>>> serializer = AccountSerializer(account)
>>> account.data
{'iban': 'SK1234', 'balance': 100.0}

Následne vytvoríme pohľad.

Defining View

Pohľad umiestnime opäť do súboru s pohľadmi views.py v našom module.

class AccountCreateReadView(ListCreateAPIView):
    queryset = Account.objects.all()
    serializer_class = AccountSerializer

Resources

results matching ""

    No results matching ""