Vapor文档学习十七:ROUTING - Group

将多个路由进行组合,可以令多个路由共用相同的前缀、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
}

你可能感兴趣的:(Vapor文档学习十七:ROUTING - Group)