【Flask】5分で作るめちゃくちゃ簡単なAPI【Python初心者】

いつもならRails等でAPI用のサーバーを立てるのですが、PythonでAPIを作りたかったのでFlaskを利用したら信じられないくらい簡単にできました。

とりあえずこんな感じで動くよというのが見たかったので、GETでJSONを返すくらいしか実装はしていません。

本当に5分でできるので、PythonでAPI作ってみたいなという方はこれでぜひ雰囲気だけでも掴んでみてください。

 

Flaskとは

Flaskとは、Pythonのための軽量なウェブアプリケーションフレームワークです。

Pythonで用いられるフレームワークとしてはDjangoなども人気ですが、今回は簡単なAPIを作成するだけだったので、「マイクロフレームワーク」と呼ばれるFlaskが適切かと思います。

小規模〜中規模のWebアプリケーションであれば、Flaskで作成するのが軽量かつ早く作ることができるのでオススメです。

公式サイトはこちら

 

インストール

Pythonとpipのインストールがまだの方は、こちらで導入を紹介しているのでぜひご覧ください。

【Selenium】30分で出来るWebスクレイピング【Python初心者】

今回使うのはFlaskだけなので、以下のコマンドでインストールします。

$ pip install flask

バージョン確認で、正常にインストールされているか確認します。

$ flask --version

 

APIの実装

APIを作成していきます。

# 必要なモジュールの読み込み
from flask import Flask, jsonify, abort, make_response

# Flaskクラスのインスタンスを作成
# __name__は現在のファイルのモジュール名
api = Flask(__name__)

# GETの実装
@api.route('/get', methods=['GET'])
def get():
    result = { "greeting": 'hello flask' }
    return make_response(jsonify(result))

# エラーハンドリング
@api.errorhandler(404)
def not_found(error):
    return make_response(jsonify({'error': 'Not found'}), 404)

# ファイルをスクリプトとして実行した際に
# ホスト0.0.0.0, ポート3001番でサーバーを起動
if __name__ == '__main__':
    api.run(host='0.0.0.0', port=3001)

このファイルを実行することでサーバーが立ち上がります。

curlでリクエストを送ってみます。

flask-curl

実際に通信が成功してレスポンスが返ってきているのが確認できました。

1つのファイルでルーティングなども楽に作成できるのでしばらくはFlaskを使ってAPIを作成してみようかなと思います。