1
처리하기 전에 LIFT에서 REST 요청 (GET 및 PUT)의 유효성을 검사하고 싶습니다. 즉, 요청에 매개 변수 요청자가 있는지 여부를 확인해야합니다. 누락 된 매개 변수를 예외로 응답하지 않아도됩니다. 이 작업을 수행하는 방법을 알려주십시오.요격 휴식 리프트 나머지 요청 및 확인 매개 변수
처리하기 전에 LIFT에서 REST 요청 (GET 및 PUT)의 유효성을 검사하고 싶습니다. 즉, 요청에 매개 변수 요청자가 있는지 여부를 확인해야합니다. 누락 된 매개 변수를 예외로 응답하지 않아도됩니다. 이 작업을 수행하는 방법을 알려주십시오.요격 휴식 리프트 나머지 요청 및 확인 매개 변수
할 수있는 일이 몇 가지 있습니다. 내가 시도 할 두 사람은 당신의 휴식 전화를 포장 할 도우미 함수, 같은 것 :
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)
}
기능은 매개 변수를 확인하고 그것이 작동하지 않는 경우 오류를 반환하거나 호출하는 경우를 실행합니다 그렇습니다. 당신의 나머지 호출에서, 당신이 좋아 사용합니다 :
case "location" :: Nil Get req => requireParams(req){
//your rest body
}
또는, 당신은 아마 당신이 모든 메소드 호출을 확인하고 싶었다 가정 전체 RestHelper
에 guard을 사용할 수 있습니다,이 같은 작동 될 수 있습니다
val ensureParams: PartialFunction[Req, Unit] = {
case r if (r.get_? || r.put_?) && checkParam(r) =>
case r if (!r.get_? && !r.put_?) =>
}
그러나 희망 - 내가 위의 코드를 테스트하지 않았습니다, 그래서 약간의 실수가있을 수 있습니다
LiftRules.dispatch.append(ensureParams guard YourRestHelper)
:
한 다음에 부팅에 RestHelper 인스턴스를 보호 그것은 당신을 시작하게 도와야합니다.
감사합니다. jcern, 저는 RestHelper를 사용하여 매개 변수가없는 경우 요청을 차단합니다. 매개 변수를 사용할 수없는 경우 사용자 지정 메시지 또는 오류 페이지가 필요합니다. 우리는 어떻게이 일을 할 수 있습니까? – Prasad
[리프트 목록] (https://groups.google.com/forum/#!forum/liftweb)에서 추가 세부 정보를 묻는 질문을 할 수 있습니다. 또는 추가적인 후속 질문을 할 수 있으며 자세한 내용을 제공 할 수도 있습니다. –