以前 appengine-rest-server を紹介したときに「Kay Frameworkに追加されないかな」なんて書いていたら、本当に追加されました。
ソースコードを見たところ、appengine-rest-serverのソースコードをKayに移植したようですね。「Kay でも使えるようにappengine-rest-serverを改良しようかな」って考えていたので、行動の速さに驚きです。実装までのスピードが違います。これが技術力の差か…。
使い方も簡単で、RESTViewGroup というクラスを使います。こんな感じ。
myapp/models.py
from google.appengine.ext import db class Task(db.Model): name = db.StringProperty() done = db.BooleanProperty(default=False) created = db.DateTimeProperty(auto_now_add=True)
myapp/urls.py
from kay.generics import rest class TaskRESTViewGroup(rest.RESTViewGroup): models = ['myapp.models.Task'] view_groups = [ TaskRESTViewGroup(), ]
たったこれだけで、モデルの CRUD 処理を行うための RESTful な API が実装できます。
私の場合、Kay だけでなく webapp でも使えるように、appengine-rest-server を Mixin クラスに改造するつもりでした。でも良く考えたら、今後 Google App Engien のアプリ開発は Kay を使っていくだろうし、わざわざ車輪の再発明しなくていいな。Kay で使う場合、Mixin よりも ViewGroup の方が使い勝手いいですし。