繁体   English   中英

spring 中的 queryparm 支持用于宁静的 web 服务

[英]queryparm support in spring for restful web services

我怎样才能以真正宁静的方式通过 spring 获得宁静的 web 服务的查询queryparam支持......

例如我有 url 如下

localhost:8080/myapp/booksearch/title/{title}/author/{author}?sortby=relevance&year=2013

标题和作者我可以通过@PathVariable .....

我想要 sortby 和 year 可选..

您可以在方法参数上使用@RequestParam注释

@RequestMapping (...)
public String getBooks(@RequestParam(required = false, value = "sortby") String sortBy, @RequestParam(required = false, value = "year") String year) {...}

如果未提供请求参数,则@RequestParam注释还具有defaultValue属性以用作值。 如果没有它,如果未提供参数,则null将作为该参数的参数传递。

为了获得更好的订单,您可以使用Swagger,它还可以让您按顺序记录您的端点。

您可以使用Class对queryParams进行分组并将其作为Controller方法的参数传递,如下所示:

@RequestMapping("/books")
public String getbBoks(MyParams params) {...}

为了描述参数,你只需要这样做:

@ApiModel
  public class MyParams {
  @ApiParam(
    name = "sortby",
    type = "string",
    required = false
)
private String sortby;

@ApiParam(
    name = "year",
    example = "2017 , 2016",
    type = "integer",
    required = false
)
private int year;
  }

Spring 注释 @RequestParam 用于获取查询参数,而 @PathVariable 用于获取路径中的变量或 url 用花括号声明的变量,如localhost:8080/myapp/booksearch/title/{title}

因此,在您的情况下,您需要 @RequestParam 来获取 sortedBy 和年份值。 你可以简单地写public String getBooks(@RequestParam("sortby") String sortBy)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM