Kay Framework に RESTful な API を実装するための機能が追加されていた

以前 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 の方が使い勝手いいですし。