我了解如何执行 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/