「アウトプットと言う名の備忘録@Texas」

日本じゃない何処かの脳筋パイソニスタによる何かしらの走り書き

【Flask超入門】その2:jsonifyで超簡単にREST APIをビルドする

atsashimipy.hatenablog.com

前回のFlaskの記事から2年近く開いてしまいました脳筋ニシキです。

f:id:At_sashimi_py:20210809115236p:plain
大変申し訳ありませんでしたーーーーー!🙇🏻‍♂️

その記事の終わり際に、

次回はもっとhtmlを書いて、それっぽい形にしていきましょう!

とかぬかしつつ、この2年の間フロントエンドはReactで書き、Flaskは基本フロントエンドから叩かれた時にapiを返すバックエンドとして使用してきました。


なので今回は予定を変更して、Flaskで超簡単にREST APIをビルドする方法をここに書き残していこうと思います!

では早速参ります。

前回のおさらい

#flask_project.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "<h1>Hello World!!</h1>"


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


でこのfileをrunすると

速攻でHello Worldできるお手軽さ!さすがFlaskの兄貴!🙆🏻‍♂️

f:id:At_sashimi_py:20191013090528p:plain
Hello World!!

ただ今回、Flask兄貴にはバックエンドに徹してもらいます🙇🏻‍♂️

text/html ではなく application/jsonが欲しい!そんな時のjsonify!

上で見た、html で表現されたHello World も素敵なのですが、今回は HTTP Content-type: application/jsonで返してもらいます。

まず、jsonify を インポートします。
flask.palletsprojects.com

#flask_project.py

from flask import Flask, jsonify


このjsonifyを使うことで簡単に Content-type: application/json のレスポンスを返すことができるようになります!

なので、先程のコードを以下のように書き換え、

#flask_project.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    hello_api = {
        'greeting': "Hello World!"
    }
    return jsonify(hello_api)

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

localhostにリクエストを送ると

curl  http://localhost:5000/
{
  "greeting": "Hello World!"
}

肝心のContent-Typeは...

curl  -v http://localhost:5000/

Content-Type: application/json

簡単にREST APIをビルドすることができました。

さすがFlaskの兄貴!目立たない裏方でもサクッとスマートこなしちまうぜ!

こっから先のフロントエンドは私Reactにお任せくだせい!🙋🏻‍♂️


と、このようにバックエンドからフロントエンドへのデータの受け渡しが簡単にできるようになりました!!


今回は基本中の基本でしたが、次回はやや応用編を攻めていこうと思います!

ありがとうございました!