Как установить заголовок ответа Content-Type в Vapor 4? - PullRequest
1 голос
/ 22 апреля 2020

Мое приложение использует Vapor 4.3 и имеет простой маршрут, который отправляет фрагмент HTML в качестве ответа:

import Vapor

func routes(_ app: Application) throws {
  app.get("hello") { _ -> String in
    "<html><body>Hello, world!</body></html>"
  }
}

К сожалению, для этого ответа не установлен правильный заголовок HTTP Content-Type поэтому он не отображается как правильный HTML, когда этот маршрут открывается в браузере. Какой лучший способ установить заголовок Content-Type в этом ответе?

1 Ответ

2 голосов
/ 22 апреля 2020

Вам нужно вернуть Response вот так

app.get("hello") { _ -> Response in
    var headers = HTTPHeaders()
    headers.add(name: .contentType, value: "text/html")
    let html = "<html><body>Hello, world!</body></html>"
    return Response(status: .ok, headers: headers, body: .init(string: html))
}
...