代码之家  ›  专栏  ›  技术社区  ›  Sujit

搜索API的Spring Boot REST设计

  •  4
  • Sujit  · 技术社区  · 6 年前

    我正在设计 SpringBoot RESTful API 对于 Product 使用各种属性进行搜索(搜索可以是一个或多个)。很少有标准大于一定数量,很少有标准小于。在 @RequestParam 我们可以采用字符串或类似的值,但不能采用任何标准。

    我的问题是,在 GET 搜索API调用

    @GetMapping("/search")
    public ResponseEntity<List<OrderView>> searchOrders(...)
    {
    ...
    // call to service implementation
    ...
    }
    
    2 回复  |  直到 6 年前
        1
  •  5
  •   de-jcup    6 年前

    隐马尔可夫模型。。。 https://spring.io/guides/tutorials/bookmarks/ 对使用spring的REST服务有很好的描述。它还描述了RESTful原则的不同级别(你可以用HAL的spring boot做一些非常简单和聪明的事情)。

    当您进行搜索时,您没有资源(level1)url,但希望获取它。。。因此,可以(imho)执行一个简单的查询参数调用。例如,看看亚马逊。com并在那里键入一些搜索参数,您将看到它们使用的是一种简单的方法:

    https://www.amazon.de/s/ref=nb_sb_noss?....&url=search-alias%3Daps&field-keywords=criteria1+criteria2+criteria3
    

    它们只是将关键字添加为串联字符串。

    apigee还有一篇有趣的博客: https://apigee.com/about/blog/technology/restful-api-design-tips-search

        2
  •  4
  •   Raouf Makhlouf    4 年前

    在本文中 Spring Boot: How to design efficient REST API? ,我解释了如何开发用于搜索的REST API。例如,您在本文中找到了postman的代码和屏幕截图。

    作为一个端点的优化,我可以得到几个结果:资源被排序、过滤和分页。

    您不需要处理大量代码(检查查询参数和控制器中的所有控件):库 参数解析器规范 这样做没有问题