【发布时间】:2021-01-27 03:29:55
【问题描述】:
我在 REST 服务和消费者应用程序之间使用 Micronaut 层。 |REST 服务|->|Micronaut 客户端/控制器|->|消费者应用程序|。 当 REST 服务返回错误时,控制器应传播错误代码。 当 REST 服务离线时,控制器应该返回某种 500 错误代码。 但是,现在它在两种情况下都返回一个带有 200 错误代码的空正文。
这里的例子是我的控制器:
@Controller("/api/v1")
public class MyController {
private final ClientNetworkList clientNetworkList;
public MyController(
ClientNetworkList clientNetworkList,
){
this.clientNetworkList = clientNetworkList;
}
@Get(uri = "/networkList", produces = MediaType.APPLICATION_JSON_STREAM)
Flowable<NetworkListPackage> packagesNetworkList() {
return clientNetworkList.fetchPackages();
}
}
还有客户:
@Client(FabricConfiguration.FABRIC_API_URL)
public interface ClientNetworkList{
@Get("/auth/networklist")
Flowable<NetworkListPackage> fetchPackages();
}
如何传播或抛出正确的正文和错误代码? @Error 注解应该如何使用,应该在控制器中实现还是在过滤器中实现?
【问题讨论】:
-
你能显示
ClientNetworkList的源代码吗? -
抱歉打错了。 “ClientNetworkList”实际上是@client 接口。现在已在问题中更正。
-
我确定这只是这里的代码错误,不是真正的代码,但我认为
this.ClientNetworkList应该是this.clientNetworkList,return clientNetworkList.fetchPackages();应该是return clientNetworkList.fetchPackages();。 -
是的,谢谢你看到这个。
标签: rest exception error-handling micronaut error-code