7
我正在寫Scala/Play 2.0應用程序,我希望我的代碼根據請求返回不同的頁面。這裏是我的代碼:如何以功能方式驗證參數?
// Validate client and return temporary credentials
def requestToken = Action { request =>
// Authorization header may present or not
val authHeader = parseHeaders(request headers AUTHORIZATION)
// Authorization header may contain such keys or not
val clientKey = authHeader("oauth_consumer_key")
val signature = authHeader("oauth_signature")
if (authenticateClient(clientKey, signature)) {
...
Ok(...)
} else {
Unauthorized(...)
}
}
時請求的格式不正確和缺乏一些頭文件出現的問題,然後拋出NoSuchElementException。
在命令式語言,我會驗證每一個步驟是這樣的:
if (!request.headers.contains(AUTHORIZATION))
return Unathorized
val authHeader = parseHeaders(request headers AUTHORIZATION)
if (!authHeader.contains("oauth_consumer_key") || !authHeader.contains("oauth_signature"))
return Unathorized
val clientKey = authHeader("oauth_consumer_key")
val signature = authHeader("oauth_signature")
...
,但我應該怎麼辦的功能性的方式來解決這樣的問題呢?
謝謝,這正是我一直在尋找的。 – lambdas