Django フレームワークを使用して RESTful API を構築する

PHPz
リリース: 2023-09-28 21:01:50
オリジナル
1405 人が閲覧しました

Django フレームワークを使用して RESTful API を構築する

Django フレームワークを使用して RESTful API を構築する

Web アプリケーションの継続的な開発に伴い、最新のアプリケーション コンポーネントにとってスケーラブルで柔軟な API を構築することが重要になってきました。人気のある開発フレームワークである Django フレームワークは、RESTful API を構築するための高速かつ信頼性の高い方法を提供します。この記事では、Django フレームワークを使用して RESTful API を構築する方法を紹介し、具体的なコード例を示します。

  1. Django プロジェクトとアプリケーションの作成
    まず、ローカル環境に Django プロジェクトを作成する必要があります。次のコマンドを使用して、「myproject」という名前のプロジェクトを作成します。
$ django-admin startproject myproject
ログイン後にコピー

プロジェクト ディレクトリに移動し、「api」という名前のアプリケーションを作成します。

$ cd myproject
$ python manage.py startapp api
ログイン後にコピー
  1. プロジェクトとアプリケーションの構成
    プロジェクトの settings.py ファイルで、「rest_framework」アプリケーションと「api」アプリケーションを INSTALLED_APPS リストに追加する必要があります。
INSTALLED_APPS = [
    ...
    'rest_framework',
    'api',
]
ログイン後にコピー

リクエスト パスを API アプリケーションに転送するように、プロジェクトの urls.py ファイルを構成する必要もあります。

from django.urls import include, path

urlpatterns = [
    ...
    path('api/', include('api.urls')),
]
ログイン後にコピー
  1. モデルとシリアライザーの作成
    アプリケーション API では、最初に API 内のリソースを表すモデル クラスを定義する必要があります。記事を例に挙げると、models.py ファイルに「Article」という名前のモデルを定義できます。
from django.db import models

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
ログイン後にコピー

次に、api ディレクトリに Serializers.py という名前のファイルを作成し、「ArticleSerializer」という名前のシリアライザーを定義して、モデル インスタンスを JSON に変換する必要があります。

from rest_framework import serializers
from api.models import Article

class ArticleSerializer(serializers.ModelSerializer):
    class Meta:
        model = Article
        fields = ['id', 'title', 'content', 'created_at']
ログイン後にコピー
  1. ビューの作成
    API ディレクトリに views.py という名前のファイルを作成し、GET リクエストと POST リクエストを処理するために ArticleList という名前のクラス ビューを追加します。
from rest_framework import generics
from api.models import Article
from api.serializers import ArticleSerializer

class ArticleList(generics.ListCreateAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer
ログイン後にコピー

ArticleDetail というクラス ビューを作成して、1 つの記事に対する GET、PUT、および DELETE リクエストを処理することもできます。

from rest_framework import generics
from api.models import Article
from api.serializers import ArticleSerializer

class ArticleDetail(generics.RetrieveUpdateDestroyAPIView):
    queryset = Article.objects.all()
    serializer_class = ArticleSerializer
ログイン後にコピー
  1. URL の構成
    API ディレクトリに urls.py という名前のファイルを作成し、次のコードを追加してパスを構成します。
from django.urls import path
from api import views

urlpatterns = [
    path('articles/', views.ArticleList.as_view(), name='article-list'),
    path('articles/<int:pk>/', views.ArticleDetail.as_view(), name='article-detail'),
]
ログイン後にコピー
  1. サービスの開始
    これで、開発サーバーを実行して API をテストできます。
$ python manage.py runserver
ログイン後にコピー
  1. API のテスト
    Postman やcurl などのツールを使用して、HTTP リクエストを送信して API をテストできます。一般的な API リクエストの例をいくつか示します。
  • すべての記事の取得 (GET リクエスト):

    GET http://localhost:8000/api/articles/
    ログイン後にコピー
  • 単一の記事の取得 (GET リクエスト):

    GET http://localhost:8000/api/articles/1/
    ログイン後にコピー
  • 新しい記事の作成 (POST リクエスト):

    POST http://localhost:8000/api/articles/
    Content-Type: application/json
    
    {
      "title": "Hello",
      "content": "This is a test article."
    }
    ログイン後にコピー
  • 記事の更新 (PUT リクエスト):

    PUT http://localhost:8000/api/articles/1/
    Content-Type: application/json
    
    {
      "title": "Hello World",
      "content": "This is an updated test article."
    }
    ログイン後にコピー
  • 削除記事 (DELETE リクエスト):

    DELETE http://localhost:8000/api/articles/1/
    ログイン後にコピー

    概要:
    この記事では、Django フレームワークを使用して RESTful API を構築する方法を紹介しました。モデルとシリアライザーを作成し、ビューと URL 構成を定義することで、完全に機能する API を迅速に構築してテストできます。これは、最新の Web アプリケーションを構築し、スケーラブルなサービスを提供するための優れた基盤を提供します。 Django フレームワークを使用すると、リソースの取得、作成、更新、削除などの一般的な API ニーズを簡単に処理できます。

    (ワード数: 1063)

    以上がDjango フレームワークを使用して RESTful API を構築するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!