投稿

[Python 100日チャレンジ] Day 87 - FlaskでREST APIを作る

FlaskでJSONレスポンスを返すREST APIを作り、GETとPOSTの基本を実装します。

[Python 100日チャレンジ] Day 87 - FlaskでREST APIを作る

REST APIとは

REST APIは、HTTPを使ってデータをやり取りする仕組みです。Web画面ではなく、JSONを返すエンドポイントを作ります。

1
2
3
4
5
from flask import jsonify

@app.route("/api/posts")
def api_posts():
    return jsonify([{"id": 1, "title": "Hello"}])

GET API

1
2
3
4
@app.route("/api/posts/<int:post_id>")
def api_post(post_id):
    post = {"id": post_id, "title": "Sample"}
    return jsonify(post)

データを取得するAPIでは、URLにIDを含めることが多いです。

POST API

1
2
3
4
5
6
from flask import request

@app.route("/api/posts", methods=["POST"])
def create_post():
    data = request.get_json()
    return jsonify({"title": data["title"]}), 201

JSONのリクエストボディはrequest.get_json()で受け取れます。

ステータスコード

作成成功なら201、見つからない場合は404のように、結果に合ったHTTPステータスコードを返します。

今日のゴール

REST APIでは、URL、HTTPメソッド、JSON、ステータスコードをそろえて設計します。Flaskで小さなJSON APIを作って流れを確認しましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。