gpt4 book ai didi

java - 关于 REST 中 http 方法重载的建议

转载 作者:行者123 更新时间:2023-11-30 05:59:03 25 4
gpt4 key购买 nike

我在@Path 中使用了正则表达式来实现重载,起初我认为它非常简洁,但重载方法通常不是好的做法。这同样适用于 RESTful Web 服务吗?是否有使用 JAX-RS 实现此目的的更好方法?

所以我现在可以通过/project/ProjectNumber1000 或/project/12345 调用我的 getProject REST 服务

@Path("/project")
public class ProjectPropertiesResource
{
@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{name : [a-zA-Z]+}")
public Response getProjectPropertiesByName(@PathParam("name") String name)
{
...
}

@GET
@Produces(MediaType.APPLICATION_JSON)
@Path("/{id : \\d+}")
public Response getProjectPropertiesById(@PathParam("id") long id)
{
...
}
}

最佳答案

您可以这样做,但是,只有一个重载实际上应该返回带有 200 的响应主体。其他重载应该返回一个 303 重定向到返回主体的 URI。

这将确保缓存只有一份资源副本,如果您在主 URI 上执行 PUT 或 POST,您将使一份副本无效。否则,由于缓存中存在不同版本,您可能会开始获得不一致的结果。

关于java - 关于 REST 中 http 方法重载的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548155/

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