PythonのDjango REST Framework(DRF)でAPIを作成する方法を初心者向けに解説!Python API開発入門
生徒
「PythonでWebサービスを作るときに、APIってよく聞くんですが、どういうものなんですか?」
先生
「APIとは、プログラム同士がデータをやり取りするための仕組みのことです。たとえば、スマホアプリがサーバーにデータを取りに行くとき、そのやり取りをする窓口がAPIです。」
生徒
「PythonでもAPIは作れるんですか?」
先生
「もちろん作れます。PythonではDjango REST Framework(DRF)という便利なフレームワークを使うと、初心者でも比較的簡単にWeb APIを開発できます。」
生徒
「難しそうですが、パソコン初心者でも理解できますか?」
先生
「順番に学べば大丈夫です。PythonでのAPI開発の基本から、Django REST Frameworkの使い方までやさしく説明していきます。」
1. Django REST Framework(DRF)とは?PythonでAPI開発するためのフレームワーク
Django REST Framework(DRF)とは、PythonのWebフレームワークである Djangoを使ってWeb APIを簡単に作るためのツールです。
そもそもフレームワーク
最初から全部自分で作るのではなく、最初から用意されている仕組みを使うことで、 短時間で安全にPython API開発ができるようになります。
Django REST Frameworkは次のような特徴があります。
- PythonでREST APIを簡単に作れる
- JSON形式でデータを返せる
- データベースと簡単に連携できる
- 管理画面やテスト機能が充実している
2. Django REST Frameworkをインストールする方法(Python API開発準備)
まずは、Pythonの環境にDjango REST Frameworkをインストールします。 Pythonではpipというツールを使ってライブラリを追加します。
pipとは、Pythonのプログラム部品をインストールするためのツールです。 スマホのアプリストアのようなイメージです。
pip install django
pip install djangorestframework
Djangoをまだ作っていない場合は、次のコマンドでプロジェクトを作成します。
django-admin startproject myproject
cd myproject
python manage.py startapp api
これでPythonのAPI開発の準備が整いました。
3. Django REST Frameworkでモデル(データ構造)を作る
APIではデータを扱います。そのデータの形を決めるものを モデル(Model)といいます。
モデルとは、データベースの設計図のようなものです。 例えば「本の情報」を保存する場合は、次のように書きます。
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
price = models.IntegerField()
def __str__(self):
return self.title
このコードでは、本のタイトルと価格を保存できるデータ構造を作っています。 Djangoでは、このモデルを使ってデータベースのテーブルが自動で作られます。
4. Serializer(シリアライザー)とは?Python APIでデータをJSONに変換
Django REST FrameworkではSerializer(シリアライザー)という仕組みを使います。
シリアライザーとは、PythonのデータをJSON形式に変換するためのツールです。
JSONとは、Web APIでよく使われるデータ形式です。 Webサービスやスマホアプリとデータをやり取りするときによく使われます。
from rest_framework import serializers
from .models import Book
class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'price']
このコードを書くことで、BookモデルのデータをAPIとして返すことができるようになります。
5. Django REST FrameworkでAPIビューを作る
次に、実際にAPIとして動作する処理を書きます。 この処理をビュー(View)と呼びます。
ビューとは、ユーザーからのリクエストを受け取り、 データを返す処理のことです。
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view(['GET'])
def hello_api(request):
data = {
"message": "Hello Django REST Framework"
}
return Response(data)
このAPIにアクセスすると、JSON形式でメッセージが返されます。
{
"message": "Hello Django REST Framework"
}
このようにして、PythonでAPIサーバーを作ることができます。
6. URLを設定してAPIにアクセスできるようにする
作成したAPIをブラウザやアプリから使えるようにするには、 URL設定を行います。
URLとは、Webサイトの住所のようなものです。 APIにも専用のURLを用意する必要があります。
from django.urls import path
from .views import hello_api
urlpatterns = [
path('hello/', hello_api),
]
この設定をすると、次のようなURLでAPIにアクセスできます。
http://localhost:8000/hello/
ブラウザでアクセスすると、JSONデータが表示されます。 これがPython APIサーバーの基本的な仕組みです。
7. Django REST Frameworkでできること(Python API開発のメリット)
Django REST Frameworkを使うと、Pythonで次のようなAPI開発ができます。
- スマホアプリ用のAPIサーバー
- ReactやVueなどのフロントエンドと連携
- データベース連携API
- ログイン機能付きAPI
- CRUD API(データ登録・取得・更新・削除)
Pythonは世界中で使われているプログラミング言語であり、 Webサービス開発、AI開発、データ分析など幅広い分野で活用されています。
その中でもDjango REST FrameworkはPython API開発の定番ツールで、 多くの企業やWebサービスで利用されています。
まとめ
PythonのDjango REST FrameworkでAPI開発を学ぶ意味
ここまで、Pythonを使ったWeb API開発の基本として、Django REST Framework(DRF)の仕組みや使い方を初心者向けに解説してきました。 Django REST Frameworkは、PythonでREST APIを作成するためのフレームワークであり、Webサービス開発やスマホアプリ開発、フロントエンドフレームワークとの連携など、さまざまな場面で利用されています。
現在のWeb開発では、フロントエンドとバックエンドを分けた開発が主流になっています。ReactやVueなどのJavaScriptフレームワークで画面を作り、サーバー側ではAPIを提供する形のシステムが多くなっています。 そのときに重要になるのが、サーバーとアプリケーションをつなぐAPI(アプリケーションプログラミングインターフェース)です。
PythonのDjango REST Frameworkを使えば、複雑な処理を最初から作る必要がなく、便利な機能を使って安全で効率的なAPI開発ができます。
この記事で学んだDjango REST Frameworkの重要ポイント
今回の記事では、Python初心者でも理解できるように、Django REST Frameworkの基本構造を順番に学びました。 API開発では、いくつかの重要な仕組みが組み合わさって動いています。
- Django REST FrameworkはPythonでAPIを作るためのフレームワーク
- pipを使ってDjangoとDRFをインストールする
- Modelでデータベースの構造を作る
- SerializerでPythonのデータをJSONに変換する
- ViewでAPIの処理を書く
- URL設定でAPIにアクセスできるようにする
これらの仕組みを理解すると、Pythonでデータベース連携APIやスマホアプリ向けAPIサーバー、さらにWebサービスのバックエンドAPIを作ることができるようになります。
Python API開発の基本的な流れを復習
Django REST FrameworkでAPIを作る基本的な流れは、次のようになります。
pip install django pip install djangorestframework django-admin startproject myproject cd myproject python manage.py startapp api まずはPythonの環境にDjangoとDjango REST Frameworkをインストールします。 その後、Djangoプロジェクトとアプリケーションを作成して、API開発の準備を行います。
次に、データベースの構造を定義するModelを作成します。
from django.db import models class Book(models.Model): title = models.CharField(max_length=100) price = models.IntegerField() def __str__(self): return self.title このようにModelを作ることで、Djangoが自動的にデータベーステーブルを作成してくれます。
次に、PythonのデータをJSON形式に変換するSerializerを作成します。
from rest_framework import serializers from .models import Book class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ['id', 'title', 'price'] Serializerを使うことで、APIが返すデータ形式を簡単に作ることができます。
最後に、APIの処理を書くViewを作成します。
from rest_framework.decorators import api_view from rest_framework.response import Response @api_view(['GET']) def hello_api(request): data = { "message": "Hello Django REST Framework" } return Response(data) このViewにアクセスすると、JSON形式のデータが返されるAPIになります。
さらにURL設定を行うことで、ブラウザやアプリからAPIにアクセスできるようになります。
from django.urls import path from .views import hello_api urlpatterns = [ path('hello/', hello_api), ] このように、Django REST FrameworkではModel、Serializer、View、URLという仕組みを組み合わせてAPIサーバーを構築していきます。
Django REST Frameworkを学ぶとできること
PythonのDjango REST Frameworkを理解すると、実際のWebサービス開発で多くのことができるようになります。
- スマホアプリ用APIの開発
- ReactやVueなどのフロントエンドと連携
- データベース連携Web API
- ログイン認証付きAPI
- CRUD機能付きREST API
特に、PythonのDjango REST Frameworkは初心者から実務レベルまで幅広く使われるAPIフレームワークとして知られています。 Webサービス開発、業務システム、クラウドサービスなど、さまざまな分野で活用されています。
そのため、PythonでWeb開発を学ぶなら、DjangoだけでなくDjango REST Frameworkを理解することは非常に重要です。 API開発の仕組みを理解すると、フロントエンドとバックエンドを連携した本格的なWebアプリケーション開発ができるようになります。
生徒
「PythonでAPIを作る方法がだいぶイメージできました。Django REST Frameworkを使うと、API開発がかなり簡単になるんですね。」
先生
「その通りです。Django REST Frameworkは、PythonでREST APIを開発するときにとても便利なフレームワークです。Model、Serializer、View、URLという基本構造を理解すれば、APIサーバーを作れるようになります。」
生徒
「Modelはデータベースの設計で、SerializerはJSONに変換する仕組み、ViewはAPIの処理を書く場所でしたよね。」
先生
「よく覚えていますね。そしてURL設定をすると、外部のアプリやブラウザからAPIにアクセスできるようになります。これがWeb APIの基本です。」
生徒
「PythonでWebサービスを作るときには、このAPIが重要になるんですね。」
先生
「その通りです。最近のWeb開発では、APIを中心にシステムが作られることが多くなっています。Django REST Frameworkを使えるようになると、Pythonで本格的なWebサービス開発ができるようになります。」
生徒
「もっと勉強して、PythonでAPIサーバーを作れるようになりたいです。」
先生
「ぜひ挑戦してみてください。今回学んだDjango REST Frameworkの基本をもとに、CRUD APIや認証機能付きAPIなどを作っていくと、PythonのWeb開発スキルが大きく成長します。」