java - 复杂的 RESTful GET 查询

标签 java rest tomcat get uri

我了解如何执行 GET http://localhost:8080/rest_mysql/books/1 等查询并使用 ID 提取,在本例中为“1”,但假设您想搜索一本包含 2 个变量而不是 1 个变量的书。这仍然可以通过 GET 完成吗?

最佳答案

您可以更改 URL 中的标识符以允许分隔的 ID 列表:

GET /books/1+2

这将使您的 URL 美观整洁,并符合 REST 的精神,其中 URL 标识资源。另一个好处是您可以使用一个绑定(bind)来处理 URL 中任意数量的 ID。

@GET
@Produces("application/json")
@Path("/books/{ids}")
public Books getBooks(@PathParam("ids") String ids) {

    Books books = new Books();
    for (String id: ids.split("+")) {
        books.add(bookRepository.findById(id))
    }

    return books;
}

此方法可以处理多种情况:

GET /books/1
GET /books/2
GET /books/1+2
GET /books/1+2+3

关于java - 复杂的 RESTful GET 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4557106/

相关文章:

java - 抛出运行时异常

node.js - 我为什么现在要获得“ “A data breach on a site or app exposed your password. Chrome recommends changing your password on ” SITENAME”。

tomcat - Nginx 没有重定向到我的 Tomcat 应用程序 - 这个配置文件有什么问题?

java - Tomcat 7/WEB-INF/目录映射

java - 在我的 Storm 集群中读取 AWS SQS 队列时导致这些 ParseError 异常的原因是什么

java - 在java中生成图像

java - 如何通过代码恢复生命周期状态?

java - 凌乱的 REST 注释

用于 REST API (Tomcat) 的 Spring Security Kerberos SSO

java - 斯坦福-NLP : GC overhead limit excedded when using parser on Tomcat