我正在使用一个非常奇怪的(和令人讨厌的)API,我无法控制,不幸的是,当发出无效请求时,而不是以4xx状态响应,它响应200状态。马克成功的午睡反应,因为错误
使用此响应,它也将响应正文从通常的XML响应更改为纯文本,但不会更改内容类型标题。你可以想象这有多恼人!
我已经得到了Siesta与API的合作,并且事实上它没有丝毫的REST风格,但我不确定如何让下一部分工作 - 处理不成功的请求。
我该如何着手将技术上有效且成功的200响应转换为错误响应?现在,我有以下设置:
configure("/endpoint") {
$0.mutateRequests { req in
... perform some mutation to request ...
}
$0.pipeline[.parsing].add(self.XMLTransformer)
}
configureTransformer("/endpoint") {
($0.content as APIResponse)
.data()
.map(Resource.init)
}
这工作得很好,当反应实际上是XML,但是在响应是一个错误的情况下,我收到以下:
bad api request: invalid api key
或类似的东西。 XMLParser类已经在处理这个问题,并且将其标记为遇到错误,但是我不知道如何让Siesta意识到存在错误,并且不会调用我的变换器,而是将请求标记为失败我可以在别处处理错误。
我该如何实现我所追求的目标?
谢谢!想想我已经设法使它工作:D – PaReeOhNos