常用代码:
struct UserFormInput: Codable {
let aboveAge: UInt
enum CodingKeys: String, CodingKey {
case aboveAge= "above_age"
}
}
将 GET 与 slug 格式一起使用(不适合此用例):
localhost:8080/users/above_age/25
router.get("users", "above_age", Int.parameter) { req in
let age = try req.parameters.next(Int.self)
return "user id: \(age)"
}
参考:
将 GET 与 URL 编码参数一起使用(使用先前的答案更新):
localhost:8080/users?above_age=25
router.get("users") { request -> Future<[User]> in
let minimumAge = try? request.query.get(Int.self, at: "above_age")
// do something
}
或者
router.get("users") { request -> Future<[User]> in
let userQuery = try req.query.decode(UserFormInput.self)
// do something
}
参考:
使用 POST:
router.post("users") { req in
return try req.content.decode(UserFormInput.self)
.flatMap { input in
return // do something
}
}
参考: