2017-02-11 9 views

答えて

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 
} 

代わりに、あなたはおそらくこのような何かがうまくいくかもしれない、あなたはすべてのメソッド呼び出しをチェックしたいと仮定すると、全体RestHelperguardを使用することができます

し、その後でブートであなたのRestHelperインスタンスを守る:私は上記のコードをテストしていないので、いくつかのミスがあるかもしれません

LiftRules.dispatch.append(ensureParams guard YourRestHelper) 

- うまくいけば、それはあなたが始めるのを助けるはずです。

+0

ありがとうございます。私はRestHelperを使用しています。パラメータが利用できない場合、私はカスタムメッセージやエラーページが必要です。どうすればこのことができますか? – Prasad

+0

[リフトリスト](https://groups.google.com/forum/#!forum/liftweb)でこれらの追加情報を尋ねることができれば、そこにフォローアップすることができます。あるいは、追加の質問をすることができます。詳細を提供することができます。 –

関連する問題