Sharable

システム&ウェブのシェアラブル

Lv.6 BodyParserでTextやXml、JsonやFormやMulti-partをパースできる。[play framework2.0] [java]

2012年3月28日

body parserとは?

リクエストの中身をjavaで扱えるようにしてくれます。
Scalaの技術(Iteratee[Array[Byte])を使っているので、body parserをJavaで直接拡張すること
はできない
そうです。

※json, xml, text, アップされたファイル用などほとんどのケースに対応できるparserがデフォルトで用意されています。
すべてplay.mvc.BodyParserに格納されています。

ただ、デフォルトでいろいろなbody parser※が用意されているので、
それをもとに新しいparserクラスを作ることはできるようです。
(一応動画に独自パーサーを載せました。非常に簡単なもの)

BodyParserの使い方

BodyParserを実装したクラスはplay.mvc.Http.RequestBodyを生成するparser(int maxLength)
メソッドを持っています。
直接parserメソッドをControllerから呼び出すのではなくて、request().body()を通してパースが
実行されます。
ControllerクラスまたはActionメソッドに@BodyParser.Of(Class)アノテーションを付けることで、
どのパーサーを使うか指定できます。

@BodyParser.Of(BodyParser.Json.class)
pulic static Result index() {
 RequestBody body = request().body();
 ok("Got json: " + body.asJson());
}

自分で作成したパーサーも指定できます。

@BodyParser.Of(Lv6Parser.MyParser.class)

・今回のplay framework2.0の動画。

このエントリーをはてなブックマークに追加