![GAE/Jでjsonを受け取る [gae/j] [json] [jsonic]](https://soylatte.jp/wp-content/themes/soy-magazine/assets/images/no-thumbnail.png)
Jupitris on LaboratoryさんのJSONIC + Slim3 + GAE/JでRESTサービスを構築する方法 (※1)を参考にGoogle app engineでjsonを受け取るようにしてみた。backbone.jsを使ってフロントを作るサンプルが今後増えていきそうだったので、とりあえずクライアントとサーバのコミュニケーションを確立させておきたかった!とてーーも参考になりました。まぁ、そういうわけでほぼコピーなんですが、gae/j + jsonic (+ slim3)に焦点を絞って作ってみたので記載しておきます。
jsonicを手に入れよう
gaeで使う場合には1.2.4以上じゃないとエラーが起きるという情報がWEBに落ちてました。ここでは1.2.11を使いました。http://jsonic.sourceforge.jp/index.html#download
まずはサーブレットの定義
servletとservlet-mappingをweb.xmlに定義します。
jsonicのjarに含まれるservletクラスを呼び出してます。以前はWebServiceServletというクラスを呼んでましたが、現在はRESTServletかRPCServletを使おうという流れでした。
コントローラークラスを作ろう
ちなみにslim3のControllerは継承しません。まぁ継承しても動くみたいだけども。
このクラスはhttp://jsonic.sourceforge.jp/webservice.html#restservletにあるjsonic仕様に沿って作られています。jsonicのRESTServletから呼び出されます。クライアントから送られてきたjsonが自動でpopulateされて渡されます。
これで動きます。gaeを起動してhttp://localhost:8888/restapp/donutをブラウザから直接たたくと(GET通信なので)「find was called」というメッセージがコンソールに出力されます。以上で動くまで完成です。元記事には更に「メソッドを増やす方法」も紹介されていました。感謝です!