Emcee
26 строк · 854.0 Байт
1import Foundation
2import Swifter
3
4public extension HttpResponse {
5private static let responseEncoder = JSONEncoder.pretty()
6
7static func json<R: Encodable>(response: R) -> HttpResponse {
8do {
9let data = try responseEncoder.encode(response)
10return .raw(200, "OK", ["Content-Type": "application/json"]) { writer in
11try writer.write(data)
12}
13} catch {
14return .raw(500, "Error", ["Content-Type": "application/json"]) { writer in
15try writer.write(
16responseEncoder.encode(
17[
18"error": "\(error)",
19"operationDescription": "Failed to generate JSON response"
20]
21)
22)
23}
24}
25}
26}
27