TeraBytesMemo

プログラミング関連で自分のメモをまとめて書いたり気が向いたら書いたり

FlaskでRESTfulAPIを作ってみた

pythonでRESTfulAPIを簡単に書けないかなと思ったら、flaskでもできそうということで試してみた。

Flask-RESTful — Flask-RESTful 0.2.1 documentation

javascriptからajaxを使うにあたって、クロスドメイン制約が邪魔になる時もあると思いますが、CORSの設定もできるみたいです。

例えば、monaca(以下参照)を使ってアプリを作る時とかに使えそうですね。

ja.monaca.io

というわけで、CORSを適用したRESTfulAPIをつくってみました。

#!/usr/bin/env python
# coding: utf-8

from flask import Flask, request, jsonify
from flask_restful import Resource, Api
from flask_restful.utils import cors

# 初期設定
app = Flask(__name__)
api = Api(app)

class Count(Resource):
    cache = 0

    # GET時の挙動の設定
    @cors.crossdomain(origin='*')
    def get(self):
        Count.cache = Count.cache + 1
        send_msg = jsonify(num=Count.cache)

        return send_msg


api.add_resource(Count, '/count/')

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

挙動としては count/ にアクセスするとバッファのカウンタを1足して返す挙動をとります。

で、APIにアクセスする方をjsfiddleで書いてみました。

jsfiddle.net

挙動がおかしいですが、基本カチカチボタンを押すとカウンターに値が加算されます。