2018年7月13日金曜日

IBM Cloud上でFlaskを使用してWebAPIを作る(前編)

IBM Cloud上でFlaskを使用し、JSONデータをやり取りするWeb APIを作成しています。
その方法をメモ。

Starter Kitsの中から「Python Flask」を選択し、アプリケーションを作成します。


























作成したアプリのソースをダウンロードします。

PythonもFlaskも未経験ですが、いろいろ調べながら下記のようなコードを作成しました。
受け取ったデータを結果とともにそのまま返すだけです。


from flask import Flask, jsonify, request

@app.route('/api/sample', methods = ['POST'])
def Sample():
    if request.is_json:
        if 'user' not in request.json:
            user = ''
        else:
            user = str(request.json['user'])
        return jsonify({'status':'success', 'user':user})
    else:
        return jsonify({'status':'error'})


{"user":"Taro"}というデータを送信したところ、内部エラーが発生しました。

FlaskのAPIドキュメントの「is_json」の項には「New in version 0.11.」と記載されています。
requirements.txtは「Flask==0.10.1」と記載されており、どうやらFlaskのバージョンが古いことが原因のようです。

「Flask==1.0.2」と書き換え、現時点の最新版にバージョンアップすると、{"status":"success","user":"Taro"}という結果が返ってくるようになりました。

またいつか、どこかで。

0 件のコメント:

コメントを投稿