如何将标题添加到Vapor响应(Cache-Control)

时间:2019-03-01 20:24:12

标签: vapor

我有一个使用get处理程序的控制器,该处理程序返回Future<Content>。我想在响应中添加标头(具体来说是Cache-Control)。我以为这应该很容易,但是我没有找到方法。在这种情况下,添加标题的方法是哪种?当我们使用Content而不是Response

2 个答案:

答案 0 :(得分:4)

要解决该问题,您可以这样编写端点

struct Something: Content {
    let text: String
}
router.get("customresponse") { req -> Future<Response> in
    return try Something(text: "Hello world").encode(for: req).map { response in
        response.http.headers.add(name: .cacheControl, value: "something")
        return response
    }
}

答案 1 :(得分:1)

迈克的答案就在...这对我有用。作为进一步的参考,我使用了一个值将所有公共缓存上的缓存延长1天。

req.headers.add(name: .cacheControl, value: "public, max-age=86400")