Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift Vapor 3获取敏感数据的路径_Swift_Vapor - Fatal编程技术网

Swift Vapor 3获取敏感数据的路径

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

使用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)
}
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的文档中了解更多信息