🦉

FlaskでPythonを使ってAPIを構築する方法🦉

2024/11/01に公開

FlaskでPythonを使ってAPIを構築する方法🦉

お気に入りのアプリ同士がどのように情報をやり取りしているのか、疑問に思ったことはありませんか?スマホのボタンを押しただけで、情報の世界へとつながるのは、**API(アプリケーションプログラミングインターフェース)**という仕組みのおかげです。APIはリクエストを受け取り、システムに指示を伝え、レスポンスを持ち帰る「メッセンジャー」のような存在。とても便利ですよね。

computer and desktop

今回は、Pythonのシンプルで軽量なWebフレームワーク「Flask」を使って、自分専用のAPIを作る方法を学んでいきます。専門的な知識がなくても安心してください。楽しく簡単に進められるように解説していきます!

ステップ1:準備するもの

始める前にいくつかツールが必要です:

  • Python(インストールされていない場合はPythonの公式サイトからダウンロードしてください)
  • Flaskライブラリ(ターミナルやコマンドプロンプトで次のコマンドを入力してインストールできます: pip install flask

これで準備完了です!

ステップ2:Flaskって何?

Flaskは、軽量で使いやすいWebアプリやAPIの開発ツールです。大規模なフレームワークと比べると小さなツールキットですが、シンプルなプロジェクトにぴったりで、学習も簡単です。Flaskは、ささっと料理を作れる小さなキッチンのような存在です。🧑‍🍳

ステップ3:シンプルなAPIのセットアップ

リクエストを受け取り、レスポンスを返すシンプルなAPIを作ってみましょう。基本的な構成は以下のとおりです:

好きなコードエディタを開いて(VS Code、Sublime、あるいは大胆にNotepadでもOK)、新しいファイルを作成し、ファイル名を「app.py」にしましょう。

次のコードを入力します:

from flask import Flask, jsonify

app = Flask(__name__)

# シンプルなAPIエンドポイントを作成
@app.route('/hello', methods=['GET'])
def hello_world():
    return jsonify({"message": "Hello, World!"})

if __name__ == '__main__':
    app.run(debug=True)

コードの内容を解説します:

  • Flaskとjsonifyのインポート:APIを構築するためにFlaskが必要で、jsonifyはデータをJSON形式で返すのに使います(これはコンピューターがやり取りしやすい形式です)
  • @app.route(‘/hello’, methods=[‘GET’]):Flaskに、どのURLで応答するか(ここでは/hello)を指定します。このURLにアクセスすると、APIからメッセージが返されます。
  • return jsonify({"message": "Hello, World!"}):JSON形式のレスポンスとして、「Hello, World!」というメッセージを返します。

ステップ4:APIの実行

ターミナルを開き、app.pyファイルの場所に移動して、次のコマンドを入力します:

python app.py

これでAPIがローカルマシン上で稼働します。ブラウザで「http://127.0.0.1:5000/hello」にアクセスしてみましょう。🎉 JSON形式で「{"message": "Hello, World!"}」というメッセージが表示されるはずです!

ステップ5:APIに機能を追加する

APIで果物のリストを返したい場合は、次のようにします:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/fruits', methods=['GET'])
def get_fruits():
    fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']
    return jsonify(fruits)

if __name__ == '__main__':
    app.run(debug=True)

これで「http://127.0.0.1:5000/fruits」にアクセスすると、果物のリストがJSON形式で表示されます。簡単ですね!

ステップ6:ユーザーリクエストの処理(動的ルート)

もう少し進めて、特定の果物の情報を返すAPIを作成してみましょう。ユーザーの入力に基づいて情報を返せるようにする方法です。

以下のコードをご覧ください:

from flask import Flask, jsonify

app = Flask(__name__)

fruits_info = {
    'apple': 'A sweet red fruit.',
    'banana': 'A long yellow fruit.',
    'cherry': 'A small red fruit.'
}

@app.route('/fruits/<fruit_name>', methods=['GET'])
def get_fruit_info(fruit_name):
    info = fruits_info.get(fruit_name, "Fruit not found!")
    return jsonify({"fruit": fruit_name, "info": info})

if __name__ == '__main__':
    app.run(debug=True)

http://127.0.0.1:5000/fruits/apple」にアクセスすると、「A sweet red fruit.」と表示されます。リストにない果物を指定すると「Fruit not found!」と返ってきます。

ステップ7:まとめと次のステップ

おめでとうございます!🎉 Flaskを使って最初のAPIを構築しましたね。以下ができるようになりました:

  • Flaskを使った基本的なAPIのセットアップ
  • JSON形式でのデータレスポンス
  • 動的ルートで柔軟なAPIを構築

ローカルでAPIを作成してテストした後は、外部クライアントを対象にしたテストを実施し、問題なく動作するか確認することが重要です。そこで役立つのが、APIテストツールの**EchoAPI**です。

EchoAPIを使用すると、APIの設計やテストを簡単に行うことができ、また多様なリクエスト条件をシミュレーションすることで、公開前にAPIの動作をしっかり確認できます。

EchoAPIは、APIのデバッグ、設計、負荷テスト、ドキュメント、モックサーバーなどの包括的なAPI開発ツールで、アカウント作成やログインなしで素早くテストを開始できます。軽量で使いやすいインターフェースにより、システムに負担をかけることなくAPI開発が可能です。

EchoAPIを利用して、作成したAPIを徹底的にテストし、リリース前にあらゆる状況に対する応答が正しく動作することを確認しましょう。

楽しいコーディングを! 🧑‍💻

https://www.echoapi.com/plugin/idea?utm_source=6715bd30

Discussion