当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring以restful方式过滤数据?

毛博
2023-03-14

正如标题所说。

/api/todos/?completed=eq.true&created_at=lt.1486462109399
 @GetMapping
 public ResponseEntity<Page<TodoDTO>> listAll(Criteria criteria, Pageable pageable) 
 {
        Page<Todo> todos = todoService.listAll(criteria, pageable)
        ...
 }

非常感谢你的帮助。

共有1个答案

百里景山
2023-03-14

构建流畅查询API的另一个选择是使用RSQL解析器。RSQL是一种用于对RESTful API中的条目进行参数化筛选的查询语言。遵循本文,您的API将能够处理如下URL:

http://localhost:8080/users?search=firstName==jo*;age<25

示例控制器:

@RestController
@RequestMapping(value = "/users")
public class UserController {

    @Autowired
    private UserRepository repo;

    @GetMapping
    public List<User> findAllByRsql(@RequestParam(value = "search") String search) {
        Node rootNode = new RSQLParser().parse(search);
        Specification<User> spec = rootNode.accept(new CustomRsqlVisitor<User>());
        return repo.findAll(spec);
    }

}
 类似资料:
  • 问题内容: 尽管我看过很多类似的问题,但没有找到明确的答案。使用Servlet Spec 2.5,是否可以以编程方式添加Servlet过滤器和映射?首选位置在Servlet.init()或ServletContextListener.contextInitialized()中。 问题答案: 不,不是通过标准的Servlet 2.5 API。这是在Servlet 3.0 中引入的。最好的选择是创建一

  • 假设我的应用程序正在管理名为workload的对象,具有以下字段。我想公开一个REST接口,让用户通过标签查询工作负载。 问题:我如何设计RESTendpoint,使它能够通过多个标签作为过滤器来支持查询工作负载? 或者,我可以,但每次只能使用一个标签。 示例查询2:我想 标签为“A”或“B”但没有“C”的所有工作负载 完全不知道如何执行这种rest api,除了要求用户分别由A、B、C进行查询,

  • 我有一个RESTful服务,它使用预先验证的令牌进行身份验证。我已经实现了我自己的preAuth过滤器,效果很好。我的问题是发送到我的服务的一些请求包含不适用于我的应用程序的BasicAuthoration。(我希望他们没有,他们也不应该,但他们有,我无法控制。) 现在,看起来Spring Security自动生成了一个BasicAuthorization过滤器,但是这个过滤器正在捕捉这些不相关的

  • 我有一个像下面这样的控制器 控制器具有错误处理机制,在错误处理选项中,它总是返回期望失败状态代码417。但我需要设置一个动态错误Http状态代码,如500,403等,取决于错误的类型。我该怎么做?

  • 本文向大家介绍Angularjs中如何使用filterFilter函数过滤,包括了Angularjs中如何使用filterFilter函数过滤的使用技巧和注意事项,需要的朋友参考一下 AngularJS的filter,中文名“过滤器”是用来过滤变量的值,或者格式化输出,得到自己所期望的结果或格式的东东。AngularJS中有一个filterFilter函数用来对集合过滤,非常方便。 源代码大致如下