簡體   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