ジャスティンレストAPI


djangoとdjangoの残りのフレームワークは、適切に、ほとんどの複雑なWeb APIに関連するハンドル.
一度我々は今それがAPIを追加しようとして示すようにPythonのdjangoアプリケーションを作成している!
まずは、以下のコマンドを実行してコマンドラインからdjango - rest - frameをインストールします
pipenv install djangorestframework~=3.11.0
次に、私たちの設定/設定でinstaldCountアプリの設定にRESTHONEフレームワークを追加します.Pyファイル.ローカルアプリやサードパーティからの混乱を避けるために、次のようにやってみたい.
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # 3rd party
    'rest_framework', 
    # Local
    'books',
]

当社のAPIは、JSON形式のすべての書籍を一覧表示する単一のエンドポイントを公開します.新しいURLルート、新しいビュー、および新しいシリアライザーファイルが必要です.
まず最初に新しいAPIアプリを作成しましょう.
我々の端末から;python manage.py startapp api
と設定ファイルに追加できます
INSTALLED_APPS = [
# Local
'books.apps.BooksConfig',
'api.apps.ApiConfig', # new
# 3rd party
'rest_framework',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
ので、マイグレーションファイルを作成し、データベースを更新するに移行する必要はありませんAPIアプリケーションは独自のデータベースモデルを持っていません.

URL


プロジェクトレベルではAPIアプリケーションを含んでいて、そのURLルートを設定する必要がありますpath('api/', include('api.urls')),
APIのアプリから、我々はURLを作成します.以下のCommNIDを実行してPyファイルを作成します.touch api/urls.py我々のURLファイルには、以下があります
# api/urls.py
from django.urls import path
from .views import BookAPIView
urlpatterns = [
     path('', BookAPIView.as_view()),
]
すべてのAPIのURLファイルに設定され、ビューを作成するに進みます

見解


我々は、ビューを作成する予定です.Django REST Frameworkの組み込みジェネリッククラスビューに依存するPyファイル.
我々の見解で.Pyファイルは、次のように更新されます
からのインポートジェネシス
本から.インポートブック
から.シリアルライタ
class BookAPIView(generics.ListAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer
ビューコードの説明
トップラインで我々は、ビューのDjangoレストフレームワークのジェネリッククラス、私たちの本アプリからモデル、およびAPIアプリからserializersをインポートします.(次の手順でシリアライズを作成します)
次に、ListapiViewを使用してすべてのブックインスタンスの読み取り専用のエンドポイントを作成するBookPapViewを作成します.
我々のserializersをつくってください

シリアライザー


一言で言えば、レプリライザはデータをインターネット上で消費しやすい形式に変換します.通常はJSONで、APIエンドポイントで表示されます.
Django REST Frameworkを使用してSerializerを作成し、DjangoモデルをJSONに変換します.
シリアル化を行います.APIアプリケーション内のPYファイル.
コマンドラインからtouch api/serializers.py私たちのserializers.Pyファイルにこの内容があります
# api/serializers.py
from rest_framework import serializers
from books.models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = ('title', 'subtitle', 'author', 'isbn')
我々は、Djangoレストフレームワークのserializersクラスと本モデルから我々の本アプリをインポートします.
Django - rest FrameworkのModelSerializerクラスをBookSerializerクラスに拡張します.このクラスでは、データベースモデルブックと、公開するデータベースフィールドを指定します.
私たちのAPIエンドポイントをチェックして、どのように我々のサーバーを起動して、我々のブラウザーでこのURLを走らせるかについて見ますhttp://127.0.0.1:8000/api/ローカルサーバーがまだ最初のコマンドラインコンソールで実行しているので、http://127.0.0.1:8000/api/でWebブラウザのAPIエンドポイントに移動します.
我々のAPIにアクセスするには、郵便配達人を使用するか不眠症を使用することができますし、我々は本を見て、私たちの本を追加または更新することができます.