python + FlaskでAPIをつくる

ド初心者がAPIとやらの作り方をお勉強します。

REST APIを作りたい

REST API っていうのは、HTTPリクエストを送るときのメソッドによって挙動を分岐させるAPI。
例:情報を取得するならGET、登録するならPOST、消すならDELETE
(こうじゃない:HTTPリクエストヘッダーの中身によって取得・登録などの挙動を変えるやつ)

環境

テスト用にpostmanがあると非常にはかどる

ダウンロード:postman

参考:RESTサービスを触る際の必須ツールPostmanを使ってみました

pythonはとりあえず、テストのうちはローカルで動かしてればいい。
実用的に使うならどっかのサーバーに乗っける。

flaskでAPIを作る

from flask import *

app = Flask(__name__)

@app.route('/',methods = ['GET'])
def root():
    return make_response(jsonify({'success':'success'}),200)
    # make_responseでHTTPレスポンス作れる。make_response(json,ステータスコード)

@app.route('/<string:your-ID>', methods = ['GET'])
def optional(your-ID):
    # URL末尾のIDを受け取って、IDに対応するデータを取ってきたりする
    return make_response(jsonify({'ID':your-ID},200)

@app.route('/', methods = ['POST'])
def post():
    # POSTリクエストが来たら404エラーを返してみる
    return make_response(jsonify({'error':'Does not support POST method'}),404)

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=5000, debug=True)
    # ローカルで実行したらFlaskアプリを起動する

↑これをローカルで実行して、postmanから[http://127.0.0.1:5000/]にアクセスすればレスポンスが返ってくる。
テストが終わったらサーバー上に置いて、発行されたURLに対してアクセスを試してみる。

なお、これにブラウザでアクセスしようとすると、「画面表示するためのWSGIオブジェクトがねーよばーか」って言われて正しい挙動にならないので、テストはpostman経由で。

この記事が気に入ったらサポートをしてみませんか?