処理する前にLIFTでREST要求(GETとPUT)を検証したいと考えています。つまり、リクエストにパラメータリクエスタがあるかどうかを確認する必要があります。欠落しているパラメータを示す例外を返す必要がない場合私にこのことを教えてください。インターセプト・リフト・レスト要求とベリファイ・パラメータ
1
A
答えて
0
あなたができることはいくつかあります。
def checkParam(r:Req):Boolean = {
r.param("paramName").isDefined
}
def requireParams[T<:LiftResponse](r:Req)(methodBody: => T):LiftResponse = {
if(checkParam(r))
methodBody
else
InMemoryResponse("Parameters not specified".getBytes(), List("content-type" -> "text/plain"), Nil, 500)
}
機能場合のパラメータをチェックし、それが動作しない場合はエラーを返す、またはコールを実行します:私がしようと2のようなものは、あなたのREST呼び出しをラップしまうヘルパー関数になりますします。あなたの残りの呼び出しでは、あなたのようにそれを使用します。
val ensureParams: PartialFunction[Req, Unit] = {
case r if (r.get_? || r.put_?) && checkParam(r) =>
case r if (!r.get_? && !r.put_?) =>
}
:
case "location" :: Nil Get req => requireParams(req){
//your rest body
}
代わりに、あなたはおそらくこのような何かがうまくいくかもしれない、あなたはすべてのメソッド呼び出しをチェックしたいと仮定すると、全体RestHelper
にguardを使用することができます
し、その後でブートであなたのRestHelperインスタンスを守る:私は上記のコードをテストしていないので、いくつかのミスがあるかもしれません
LiftRules.dispatch.append(ensureParams guard YourRestHelper)
- うまくいけば、それはあなたが始めるのを助けるはずです。
関連する問題
- 1. インターセプト法の要求と変更パラメータ値
- 2. インターセプト要求
- 3. NHibernateインターセプトSQLステートメントとパラメータ
- 4. 要求URLパラメータ
- 5. ガーキンとベリファイのシナリオ
- 6. Androidのインターセプトは、WebViewの要求が正しく
- 7. @InputデコレータとUglifyJsPluginのベリファイ
- 8. Spring渡し要求パラメータ
- 9. REST AngularJS @Resourceパラメータ化要求
- 10. RestTemplate要求パラメータでGETリクエスト
- 11. Java Webサービス:null要求パラメータ
- 12. パラメータ付きのGET要求
- 13. ノード・レスト・クライアント要求をどのようにモックできますか?
- 14. 例外maven - ベリファイ
- 15. Google APIのベリファイ
- 16. エスパーCEPとレストAPI
- 17. リフトとCSS/Javascript
- 18. Laravel:要求::()と要求::パッチ()
- 19. リフト
- 20. モナドトランスフォーマーとリフト機能
- 21. アソシエーションルールマイニング(信頼とリフト)
- 22. レスト・ライターとCPFのロール
- 23. http取得要求の複数のパラメータ
- 24. Alamofire要求パラメータが空です
- 25. スウィフト2.0 SOAP要求は、XMLパラメータ
- 26. ServiceStack要求パラメータがありません
- 27. 投稿要求AFネットワーク40パラメータ
- 28. パス複数のパラメータが要求
- 29. Java 7/8要求パラメータのサイズ制限
- 30. angular2 - HTTP POST要求パラメータがnullです
ありがとうございます。私はRestHelperを使用しています。パラメータが利用できない場合、私はカスタムメッセージやエラーページが必要です。どうすればこのことができますか? – Prasad
[リフトリスト](https://groups.google.com/forum/#!forum/liftweb)でこれらの追加情報を尋ねることができれば、そこにフォローアップすることができます。あるいは、追加の質問をすることができます。詳細を提供することができます。 –