Swift Vapor 3获取敏感数据的路径
使用Vapor 3上的大量教程,我无法理解如何编辑输出JSON,f.e.以获取我创建的特定用户对象路由:Swift Vapor 3获取敏感数据的路径,swift,vapor,Swift,Vapor,使用Vapor 3上的大量教程,我无法理解如何编辑输出JSON,f.e.以获取我创建的特定用户对象路由: protectedRouter.get("users", User.parameter, use: userController.user) UserController中的和方法: func user(_ req: Request) throws -> Future<User> { return try req.parameters.next(User.self
protectedRouter.get("users", User.parameter, use: userController.user)
UserController
中的和方法:
func user(_ req: Request) throws -> Future<User> {
return try req.parameters.next(User.self)
}
func用户(\req:Request)抛出->未来{
返回try-req.parameters.next(User.self)
}
当然,它会发送用户对象中的所有内容,包括电子邮件和散列密码。伟大的我怎样才能避免这种情况?我的意思是,我只想发送有关用户的公共信息(姓名、尼克、id等)。创建一个表示所需输出结构的单独结构。使该结构符合
内容。无论何时返回用户,首先将其转换为该结构。为方便起见,向用户添加这样做的扩展非常好
出现的一种常见模式是将该结构嵌套在称为Public的模型中。i、 e
extension User {
struct Public: Content { ... }
func makePublic() -> Public { ... }
}
然后,您的路由将返回User.Public
,而不是User
。请注意,此模式反过来也很有用,用于为用户创建单独的“输入”表示
您可以在Vapor的文档中了解更多信息