wil*_*ood 2 java rest overloading jax-rs
我在@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)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
你可以这样做,但是,只有一个重载实际上应该返回带有200的响应体.其他重载应该返回303重定向到返回主体的URI.
这将确保缓存只有一个资源副本,如果在主URI上执行PUT或POST,则会使一个副本无效.否则,由于缓存中存在不同的版本,您可能会开始获得不一致的结果.
| 归档时间: |
|
| 查看次数: |
4067 次 |
| 最近记录: |