gpt4 book ai didi

java - 验证嵌套资源的路径

转载 作者:行者123 更新时间:2023-12-03 00:07:26 24 4
gpt4 key购买 nike

我正在使用 Jersey 来实现带有一些嵌套资源的 RESTful 服务。这是我目前拥有的一个基本示例:

@Path("/sites")
public class SiteResource {

@GET
@Path("/{siteId}")
public Site get(@PathParam("siteId") long siteId) {
Site site = // find Site with siteId

if (site == null) {
throw new WebApplicationException(Response.Status.NOT_FOUND);
}

return site;
}
}

@Path("/sites/{siteId}/articles")
public class ArticleResource {

@GET
@Path("/articleId")
public Article get(@PathParam("articleId") long articleId) {
Article article = // find Article with articleId

if (article == null) {
throw new WebApplicationException(Response.Status.NOT_FOUND);
}

return article;
}
}

现在假设我有一个 siteId = 123 的网站和一个 articleId = 456 的文章。文章资源的正确路径为 /sites/123/articles/456。但在我当前的实现中,siteId 完全无关。您还可以使用 /sites/789/articles/456 访问资源。

ArticleResource#get 方法中,我当然可以检查指定的站点是否存在。但这似乎相当不切实际。如果我添加另一个嵌套资源,我必须重复所有检查。

在我看来,这似乎是一个常见的用例,但令我惊讶的是,我没有找到任何解决此问题的来源。所以我想知道我是否完全偏离了轨道,是否有更好的方法来处理嵌套资源。

谢谢!

最佳答案

该文章似乎是该网站的子项。因此,Java 和/或数据库端可能存在某种关系,您可以使用它来获取和验证站点和文章。

如果请求的文章位于其中,我会检索该网站,包括其子项和外观。

如果网站和文章不相关,您的整个 URI 方案将不会反射(reflect)您的资源。

关于java - 验证嵌套资源的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16733411/

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