洗練されたwsgi savvyなフレームワークから見ると,マイクロフレームワークというのは単なるシンタックスシュガーに過ぎない。既存の機能をアクセスしやすい名前空間に閉じ込めて提供するだけなので,作るのはそんなに難しくない。
というわけで,Google App Engine用のフレームワークahaをマイクロフレームワーク化するプラグインmicroneというのを書いてみた。
試してみるための手順は以下。
ここからブートストラップを取ってくる。
アーカイブを解答したあと,ディレクトリに移動して「python bootstrap.py」を実行。
その後,「bin/buildout」して,環境ができたら,「bin/dev_appserver app」で開発サーバを起動。
Webブラウザで「http://localhost:8080/」にアクセスすると,app/application.pyのindex()関数がリクエストに応答。
ソースは
@app.route('/')
def index():
app.render('Hello (insane) world !')
のようになっていて,文字列をそのまま返していることが分かる。makoのテンプレートをappディレクトリに起き,app.render(template='filename')とするとテンプレートを使ってレンダリングする。
「http://localhost:8080/authenticated」にアクセスすると,認証後にauthenticated()関数が応答。ソースは
@app.route('/authenticated')
@app.authenticate()
def authenticated():
app.render('This is the response from foo function.')
となっていて,認証を経るように関数をデコレートしてあることがわかる。
というように説明するまでもなく機能の理解が簡単なのがマイクロフレームワークの利点。プログラムというよりDSLに近いね。
Twitterの認証用プラグイン(aha.plugin.twitterauth)を使うとOAuth認証も簡単にできる。Botも簡単に作れるはずなので,そのうちサンプルをブログに乗せたりするかも:-)。