如何始终 return Vapor 3 和 Fluent 中的数组(即使对于单个实体请求)

How to always return an array in Vapor 3 and Fluent (even for single entity requests)

我想要一个索引控制器函数,如果没有设置请求参数,returns 一个实体数组;如果设置了 id 参数,我想要一个实体。但是,我希望始终收到一个数组,在后一种情况下它只包含一个元素。

这是我的函数:

final class AddressController {
    func index(_ req: Request) throws -> Future<[Address]> {
        if let id = try? req.query.get(UUID.self, at: "id") {
            // THIS IS NOT WORKING...
            return Address.find(id, on: req)
        } else {
            return Address.query(on: req).all()
        }
    }
}
final class AddressController {
    func index(_ req: Request) throws -> Future<[Address]> {
        if let id = try? req.query.get(UUID.self, at: "id") {
            return Address.find(id, on: req).map {
                guard let address = [=10=] else { return [] }
                return [address]
            }
        } else {
            return Address.query(on: req).all()
        }
    }
}