gpt4 book ai didi

java - 如何在 Restful Java 服务中满足无效返回警告

转载 作者:行者123 更新时间:2023-11-30 05:56:57 26 4
gpt4 key购买 nike

Java 代码:

      @GET
@Path("/stop/{id}")
public void stop(
@PathParam("id") String id,
@Context HttpServletRequest request,
@Context HttpServletResponse response) throws ServletException,
IOException
{
server.stop(id);
}

Java 警告被抛出到控制台:

警告:HTTP GET 方法,public void com.myPackage.stop(java.lang.String,javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 抛出 javax.servlet.ServletException, java.io.IOException,必须返回非空类型。

最佳答案

你真的不应该使用 GET 操作。

我会使用 POST 操作并返回 201 Created,其中包含指向描述系统新状态的资源的链接。

例如,我会重定向到关闭状态资源:

POST /stop/123
...
201 CREATED
Location:
http://acme.com/shutdownstatus/123

客户端可以轮询资源来检查状态

GET /shutdownstatus/123
...
<shutdown xmlns="http://schemas.serverapp.com/shutdown">
<status>pending</status>
<message>Looks good so far</message>
</shutdown>

这个新的 GET 操作将始终返回该 ID 的服务器状态。这样你就知道它是否正确关闭了。如果服务器关闭需要很长时间,客户端可以轮询该资源以检查不同的关闭状态,直到它完成。这样您就可以快速从原始服务器关闭请求返回。

如果在您的流程中抛出异常,我不会将其返回给客户端,我会在服务器状态资源中获得异常状态。当我可以将其表示为资源时,我总是避免让客户端处理异常情况。这使您可以自由更改资源,例如在更改或修复导致异常的方法时,无需更改外部 API。

关于java - 如何在 Restful Java 服务中满足无效返回警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6536753/

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