路由
用来查找 request
对应的 response
创建路由器
Vapor中默认路由是 EngineRouter
。你可以通过实现Router
协议来实现自定义路由器。
let router = try EngineRouter.default()
通常这些是在configure.swift
文件中完成的
注册路由
假设当访问GET /users
时,你想要返回user列表。不考虑授权问题的话,代码将类似这样的。
router.get("users") { req in
return // fetch the users
}
Vapor中路由通常使用 .get
、.put
、.post
、.patch
和.delete
。你可以通过/
来表示路径,也可以使用逗号分割。我们推荐后者,因为它可读性更好
router.get("path", "to", "something") { ... }
路由
最佳存放路由的位置是 routes.swift
文件,可以使用传进来的路由器参数来注册你的路由。
import Vapor
public func routes(_ router: Router) throws {
// Basic "Hello, world!" example
router.get("hello") { req in
return "Hello, world!"
}
/// ...
}
参数
有时候你可能想要路由中某个路径是动态的。这通常是用于要获取一个元素的id,比如GET /users/:id
。
router.get("users", Int.parameter) { req -> String in
let id = try req.parameters.next(Int.self)
return "requested id #\(id)"
}
这里传的不是字符串,而是你期望的参数类型。在这里User
有个Int
类型的 ID 。
提示: 你也可以自定义参数类型
网友评论