将多个路由进行组合,可以令多个路由共用相同的前缀、middleware、hosts。
路由组有两种不同的形式: Group 和 Grouped.
Group
Group(不带"ed"结尾的)用闭包来传递一个GroupBuilder
类。
drop.group("v1") { v1 in
v1.get("users") { request in
// get the users
}
}
Grouped
Grouped通过返回GroupBuilder
,这样就不用在其闭包内调用。
let v1 = drop.grouped("v1")
v1.get("users") { request in
// get the users
}
Middleware
可以向路由组中添加middleware,这对验证身份特别有用。
drop.group(AuthMiddleware()) { authorized in
authorized.get("token") { request in
// has been authorized
}
}
Host
你可以限制路由组的host
drop.group(host: "vapor.codes") { vapor
vapor.get { request in
// only responds to requests to vapor.codes
}
}
Chaining
Groups可以连接到一起。
drop.grouped(host: "vapor.codes").grouped(AuthMiddleware()).group("v1") { authedSecureV1 in
// add routes here
}
网友评论