は、私は次のように記述する必要があります同じ方法? 私はActionBuilderのようなものを考えています。これは、さまざまなRequestタイプで適切に動作します。PlayFramework JSON検証定型私はJSONの体を受け入れるPOSTメソッドのエントリを作成するたびに
1
A
答えて
1
あなたは、行動を扱うあなたのエラーをラップする方法を作ることができ、このような何か:
def withParsedJsonRequest[T](actionBody: T => Future[Result])(
implicit reads: Reads[T], req: Request[JsValue]): Future[Result] = {
req.body.validate[T].fold(
invalid => { Future.successful(BadRequest("An error occured...")) }, // do error handling here!
valid => { actionBody(valid) })
}
とAction
秒でそれを使用します。
def bla = Action.async(parse.json) { implicit req =>
withParsedJsonRequest[Bla] { b =>
Future.successful(Ok)
}
}
あなたは(T
の暗黙のReads
を渡す必要がありますJSONの解析用)をwithParsedJsonRequest
関数に、またRequest[JsValue]
(これを繰り返す必要はありません)に設定します。
「actionBody」と呼ばれるコールバック関数は、アクションの肉です。これは、解析されたT
をとり、それと何かをします。
私はあなたがスコープに暗黙のReads[T]
を持っており、(あなたが何らかの形でカスタマイズすることができます)プレイのエラーハンドラを使用することに同意した場合、体がある
+0
'withParsedJsonRequest'はデフォルト値で '無効な'関数を受け取ることもできます – pedrorijo91
0
...カスタムAction
を作るが、なぜわざわざことができると思いますあなたが欲しいものだけでないパーサは:
def foo = Action(parse.json[T]) { request =>
val body: T = request.body
...
}
注しかし、これはContent-Type
がapplication/json
に設定されていない場合は400を返すこと(tolerantJson
とは等価ではありません)。
関連する問題
- 1. 私はJSON受け入れるpostメソッド持って
- 2. コントローラはポストルートでJSONを受け入れるメソッドを作成します
- 3. POSTデータを受け入れるJSONファイルですか?
- 4. はPOSTノードAPIの入力としてJSON配列を受け入れる - エクスプレス
- 5. Flask-Adminがレコード作成のためのJSONを受け入れる方法
- 6. アンドロイド:私はIDを含むオブジェクト(文字列)と画像(バイト[])を受け入れ、JSON POSTメソッドでJSONサーバ(WCF REST)を有するPOST
- 7. TwilioプログラマブルチャットレストAPI JSONを受け入れる
- 8. パラメータのハッシュを受け入れるrubyメソッドを作成する
- 9. のLua:私はPOSTデータでこのJSONを受けていPOSTデータ
- 10. HappstackでJSON Rest APIを作成するには? JSON本体?
- 11. vb.net asmx Androidを使用してHTTP-POSTでJSONを受け入れるWebService
- 12. 配列でネストされたJSON構造体を受け入れるユーザ定義関数の入力パラメータの型は何ですか?
- 13. HTTP POSTのJSONオブジェクトとJSON文字列の受け渡し
- 14. いくつかの引数を受け入れるPOSTメソッド
- 15. WEBAPI受け入れJSONの問題 - ZenDesk
- 16. POSTデータExpress.jsでのJSON検証
- 17. JSONでAngular2 POSTを作成する
- 18. JSONスキーマ検証:私はJSONデータ次ているJSON配列
- 19. JSONでPOST()を作成
- 20. 入れ子になったjsonデータを作成するには?
- 21. [PlayFramework 2.5] [ジャワ] JSON POST要求フォーム
- 22. スウィフトのJSON本体でHTTP POSTリクエストを作成
- 23. スプリングのjson文字列から作成されたモデルを検証する
- 24. rails json - 受け入れの有効性を確認する
- 25. PlayframeworkでPOSTリクエストを送受信する
- 26. 入れ子になったJSONのPOJOを作成する
- 27. express node.js POSTリクエストでJSONを受け取る方法は?
- 28. javascriptの入力型配列からjsonを作成する
- 29. 検証の受け入れ:terms_accepted場合validate_acceptance_ofが成功したユーザーを作成するとき
- 30. JSON形式の入力を受け入れるためのカスタムWordPress REST API
ここでの伝統は、あなたが試みた**を投稿することです。 –