scala – 喷涂多条深度路径
发布时间:2020-12-16 19:10:54 所属栏目:安全 来源:网络整理
导读:我有4个基于URL的响应级别.因此对于: * GET on / abc – 响应应该是abc * GET on / abc / def – 响应应该是def * GET on / abc / def / ghi – 回应应该是ghi * GET on / abc / def / ghi / jkl – 响应应该(令人惊讶)jkl 所以我的问题是如何使用Spray.io
我有4个基于URL的响应级别.因此对于:
* GET on / abc – >响应应该是abc * GET on / abc / def – >响应应该是def * GET on / abc / def / ghi – >回应应该是ghi * GET on / abc / def / ghi / jkl – >响应应该(令人惊讶)jkl 所以我的问题是如何使用Spray.io设计这种请求 – 响应属性? 我知道使用带路径的pathPrefix是可能的,但这仅适用于两个级别? val route = { path("/abc") { // complete with response 'abc' } ~ path("/abc/def") { // complete with response 'def' } ~ path("/abc/def/ghi") { // complete with response 'ghi' } ~ path("/abc/def/ghi/jkl") { // complete with response 'jkl' } } 有没有办法“筑巢路径”?我知道这不起作用,但只是一个想法: val route = { path("/abc") { // complete with response 'abc' 'sub'path("/def") { // complete with response 'def' 'sub'path("/ghi") { // complete with response 'ghi' 'sub'path("/jkl") { // complete with response 'jkl' } } } } } 或任何其他适当的嵌套路径? 最好, 解决方法
我认为问题是关于如何做到两者,如果路径完成则在一个层面上完成某些事情,或者如果还有更多路径可用则更深入一层.
试试这个: val route = { pathPrefix("abc") { // complete with response 'abc' pathEnd { complete("abc") } ~ // don't forget the twiggles pathPrefix("def") { pathEnd { complete("def") } ~ pathPrefix("ghi") { pathEnd { complete("ghi") } ~ path("jkl") { // path already includes pathEnd,path(x) = pathPrefix(x ~ PathEnd) complete("jkl") } } } } } 顺便说一句.这与“/ abc /”等不匹配,即带有斜杠的路径.如果要强制匹配尾部斜杠,或者可选择使用pathSingleSlash或pathEndOrSingleSlash而不是pathEnd. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |