gpt4 book ai didi

Swift Siesta 重定向对失败的响应

转载 作者:行者123 更新时间:2023-11-30 12:11:09 27 4
gpt4 key购买 nike

是否可以使用 Siesta 管道,接收成功响应,解析它,并根据返回结果,将其重定向到失败响应?

我的服务器响应多次返回 HTTP 200,但带有错误消息/标志。

最佳答案

如果“重定向”的意思是“将 HTTP 成功转换为 Siesta 错误”,那么是的,这是可能的。管道可以任意将成功转换为错误,反之亦然。

编写一个 ResponseTransformer 来解开 .success 的情况,检查是否设置了错误标志(无论它们是什么),如果设置了,则返回一个新构造的 .失败.

例如,下面是一个转换器的草图,它检查 200 上的 X-My-API-Error header ,如果存在则返回错误:

struct APIErrorHandler: ResponseTransformer {
func process(_ response: Response) -> Response {
switch response {
case .success(let entity):
if let errorMessage = entity.header(forKey: "X-My-API-Error") {
return logTransformation(
.failure(Error(userMessage: errorMessage, cause: MyAPIError(), entity: entity)))
}
return response

case .failure:
return response // no change
}
}
}

配置如下:

service.configure {
$0.pipeline[.cleanup].add(APIErrorHandler())
}

您可能还会发现,研究 turn a 404 into a successful response with false for the content 示例项目中的变压器很有帮助。 ,以及 overrides Siesta’s default error message with a server-provided one 的那个.

关于Swift Siesta 重定向对失败的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46044388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com