我对电梯框架不是很熟悉,想知道使用电梯框架是否可以使用以下用例。
在server1上,Lift正在以下网址“/ contact /”
提供REST网络服务但是,如果客户端向以下URL https://server1/contact/meet/发送请求,那么它不会在此特定服务器上实现,但“可能”由另一台服务器实现。可以将任何此类不受支持的URL重定向到某个特定服务器?例如,在302响应中,可以通过Lift指定位置https://server2/contact/meet/?
请注意,这些是未知的网址,无法静态配置。
答案 0 :(得分:0)
LiftRules.dispatch
和 net.liftweb.http.DoRedirectResponse
。以下是我试图解决您的问题的代码。
// The code should in the server1; JsonDSL will be used by JsonResponse
class Boot extends Bootable with JsonDSL {
def boot {
initDispatch
}
def initDispatch {
LiftRules.dispatch.append {
case Req("contact" :: url :: Nil, _, GetRequest) => {
() => Full(
if (url == "join") {
// or other url that match what will be implemented in server1
// your implementation, say JsonResponse
JsonResponse("server1" -> true)
} else {
// if the url part does not match simply redirect to server2,
// then you have to deal with how to process the url in server2
DoRedirectResponse("https://server2/contact/meet/")
}
)
}
}
}
}
无论如何,希望它有所帮助。