はじめに
このチュートリアルで、軽量のPythonのウェブフレームワークであるFlaskを使用して簡単なREST APIを作成する方法を学びます。Flask アプリケーションの基本的な設定方法、ルーティングの定義、リクエストの処理、およびJSONレスポンスの返信を含みます。このチュートリアルの最後までに、拡張して他のアプリケーションと統合することができる機能を持つAPIを作成することができます。
前提条件
-
Ubuntuを実行しているサーバーと、sudo権限を持つ非rootユーザー、有効化されたファイアウォールです。設定方法についての指导には、このリストからあなたのディストリビューションを選択し、最初のサーバー設定ガイドに従ってください。Ubuntuのサポートされているバージョンで作業してください。
-
Linuxのコマンドラインを熟悉していること。コマンドラインの入門やリフレッシュについてのガイドには、Linux command line primerを参照することができます。
-
Pythonプログラミングの基本理解。
-
Python 3.7またはそれ以上のバージョンがUbuntuシステムにインストールされていること。PythonスクリプトをUbuntu上で実行する方法を学ぶには、How to run a Python script on Ubuntuに関する私たちのトレーニングを参照することができます。
Step 1 — フラスク環境の設定
Ubuntu 24.04はPython 3をデフォルトで提供しています。ターミナルを開いて、以下のコマンドを実行してPython 3のインストールを確認してください。
Python 3が既に machine 上にインストールされている場合、前述のコマンドはPython 3の現在のバージョンを返します。インストールされていない場合、以下のコマンドを実行しPython 3のインストールを行います。
次に、pip
パッケージインストーラをシステムにインストールします。
一旦pip
がインストールされると、Flaskをインストールしましょう。
Flaskをpip
を通じてインストールします。これを虚拟環境で行うことが推奨されています。これにより、システム上の他のパッケージと衝突を避けることができます。
手順2 – Flaskアプリケーションの作成
次の手順は、Flaskアプリケーション用のPythonコードを書くことです。新しいスクリプトを作成したい場合は、好みのディレクトリに移動します:
ディレクトリ内に移動したら、新しいPythonファイルapp.py
を作成し、Flaskをインポートします。その後、Flaskアプリケーションを初期化し、基本的なルートを作成します。
これは空のテキストエディタを開きます。ここにあなたのロジックを書いたり、以下のコードをコピーしたりします:
手順3 — RESTfulルートの作成
この節で、Flaskアプリケーションに、APIでユーザーが行うことの異なるアクションに対応するルートを定義します。各ルートは特定のHTTPメソッドを処理します。
GET
, POST
, PUT
, and DELETE
。これらの方法は、持続的なストレージの4つの基本操作に対応しており、通常CRUD(作成、読み取り、更新、削除)と呼ばれます。
以下のルートをあなたのapp.py
のPythonスクリプトに追加してください:
各関数が何を行うかをもっと了解しましょう:
-
Flask Imports: The code imports necessary components from Flask:
Flask
,jsonify
, andrequest
. -
In-Memory Data Store:
items
is a simple list of dictionaries that acts as a temporary data store for the API. Each item has anid
and aname
. -
GET
/api/items
:/api/items
にGET
リクエストを行うと、サーバーはアイテムデータストア内のすべてのアイテムのリストを返却します。これは、コレクション内のすべてのリソースを取得するために便利です。 -
POST
/api/items
:/api/items
にPOST
リクエストを行うことで、クライアントは新しいアイテムを作成することができます。サーバーは、新しいアイテムの詳細を含むJSONオブジェクトをリクエストボディに期待します。アイテムを作成した後、サーバーは新しく作成されたアイテムと201 Created
ステータスコードで応答します。 -
PUT
/api/items/<int:item_id>
:/api/items/<item_id>
にPUT
リクエストを行うことで、指定されたitem_id
の既存のアイテムを更新することができます。クライアントは更新後のデータをリクエストボディに送信し、サーバーは既存のアイテムを修正します。アイテムが見つからない場合、サーバーは404 Not Found
エラーを返却します。 -
DELETE
/api/items/<int:item_id>
: 指定されたitem_id
のアイテムをデータストアから削除するために、/api/items/<item_id>
にDELETE
リクエストを使用します。アイテムの削除が成功した場合、サーバーは204 No Content
ステータスコードを返却します。これは削除が成功し、返却する必要のない追加のコンテンツがないことを示します。 -
アプリケーションの実行:
if __name__ == "__main__":
ブロックは、スクリプトが直接実行されたときにFlaskアプリケーションが実行されることを保証します。
ステップ 4 — APIの実行とテスト
以下のコマンドを使用してFlaskサーバーを開始します。
Flaskサーバーが以下の出力で运行中だと気づけます。
上の出力から、サーバーがhttp://127.0.0.1
にて运行し、ポート5000
をリッスンしていることがわかります。
今、curl
、Postmanまたは他のHTTPクライアントを使用してエンドポイントをテストすることができます。このチュートリアルではcurl
を使用してエンドポイントをテストし、HTTPリクエストを送信します。
他のUbuntuコンソールを開き、以下のcurl
コマンドを順に実行します。
- GET:
curl http://127.0.0.1:5000/api/items
- POST:
curl -X POST -H "Content-Type: application/json" -d '{"name": "This is item 3"}' http://127.0.0.1:5000/api/items
- PUT:
curl -X PUT -H "Content-Type: application/json" -d '{"name": "This is updated item 1"}' http://127.0.0.1:5000/api/items/1
- DELETE:
curl -X DELETE http://127.0.0.1:5000/api/items/1
これらのコマンドの動作を見てみましょう。
あなたはサーバーがアイテムデータストア内のすべてのアイテムのリストを返却することに気づく。
POST
方法を使用して、新しいアイテムをデータストアに追加しましょう。
注釈: Flaskサーバーを実行している他のコンソールで、すべてのHTTP要求が実行されると留意と、その応答コードも。
これは、サーバーに関する問題の監視、デバッグ、トラブルシュートするのに優れた方法です。
次に、PUT
要求を実行しましょう。/api/items/<item_id>
にPUT
要求を送信することで、指定されたitem_id
に基づいて既存のアイテムを更新します。
次に、更新されたアイテム1を見るためのGET
要求を実行しましょう。
最後に、データストアからアイテムを削除するDELETE
要求を実行しましょう。
これにより、アイテム1がデータストアから削除されます。
これを確認するために、GET
要求を実行しましょう。
リストの第1アイテムは永久的に削除されています。
結び
このトレーニングで、Flaskを使用して基本的なREST APIアプリを構築しました。このAPIを追加のルートとして拡張し、データベースと統合したり、DigitalOceanのようなクラウドプラットフォームにデプロイしたりすることができます。Flaskは、APIを迅速かつ効率的に構築する強力なツールであり、これらの基本を学んだとして、より複雑なアプリケーションの構築を始める準備が整いました。
Source:
https://www.digitalocean.com/community/tutorials/create-a-rest-api-using-flask-on-ubuntu