gpt4 book ai didi

java - 如何处理由容器而不是应用程序发送的 404 错误

转载 作者:行者123 更新时间:2023-12-02 10:43:02 26 4
gpt4 key购买 nike

让我们假设以下 REST 资源

https://api.service.com/jobs/{id}

如果作业数据不可用,我的 jboss/wildfly 休息应用程序将发送 404(无正文数据)。 200404 是预期响应代码。

服务使用者解释此结果并启动一些此时不相关的相应进程。

不幸的是,如果应用程序未部署,消费者也会收到 404 代码。例如,由于部署错误。该响应代码由 jboss/wildfly 容器发送。此时,消费者会误解响应。

那么遇到这样的情况你会如何处理呢?我相信容器永远不应该发送这样的响应,因为这是应用程序的工作。

最明显的解决方案是一些主体数据,以便消费者可以区分 404 是来自容器还是应用程序:

{
"error": "No job found for id ..."
}

但是,在我看来,这个解决方案并不干净或真正“安静”。

最佳答案

最好的办法是在所有情况下(在您的申请中)保持您的状态为 200。这里的200代表你的应用可以到达。

对于所有其他错误,您可以返回所有其他状态(包括 200)。

例如 - 200:

{
"response" : "Ok",
"responseCode" : 200
"data" : {
"jobId" : 1
}
}

例如 - 404:

{
"response" : "Not Found",
"responseCode" : 404
"data" : null
}

您的服务使用者可以监听应用程序生成的响应(正文),然后可以区分容器和应用程序生成的任何错误。

这适用于您想要满足应用程序需求的所有响应消息。

希望这对您有帮助。

关于java - 如何处理由容器而不是应用程序发送的 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52795912/

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