繁体   English   中英

修改rest服务中GET的url路径

[英]Modify the url path for GET in the rest service

我实现了一个简单的 rest GET 服务,我想修改该服务的 ulr。

url 现在是: http://localhost:8011/types/id?date=2019-07-30T11:35:42

我想添加一个过滤器并在日期中添加一些括号 [ ]

像这样: http://localhost:8011/types/id 过滤[日期] =2019-07-30T11:35:42

这是我的 Get 服务,在值中我有“类型/ID”,但我不知道如何为请求的参数添加过滤器和括号。

    @RequestMapping(value = "types/id", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    public ResponseEntity<?> getTicketids( @RequestParam(required = false) String date)
    {
        ...
    }

我会很感激任何关于我可以改变什么或我应该读什么的建议。

我假设您使用 Spring 来定义您的 RestController。 一般来说,参数应该像这样工作:

public ResponseEntity<?> getTicketids( @RequestParam(name = "filterDate", required = false) String date)
    {
        ...
    }

此代码允许对http://localhost:8011/types/id?filterDate=mydate 的请求

但是, 在 URL 中不允许使用方括号,因此您可能需要重新考虑该特定方法。

为什么要在 RequestParam 中添加方括号?是因为您需要多种过滤器并想要区分它们吗? 在这种情况下,您可以改为添加两个请求参数 -

?filterName=date&filterValue=2019-07-30T11:35:42

此外,请确保这些值是 url 编码的,以避免字符串的任何部分使您的 url 无效。

希望这可以帮助。

我建议您不要在 URL 中使用方括号,而是传递您想要的过滤器列表,如下所示:

http://localhost:8011/types/id?filters=firstValue,secondValue,thirdValue

并像这样更改您的 controller:

@RequestMapping(value = "types/id", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public void receiveArrayOfValues(@RequestParam String[] filters) 
{
  // Handle values here
}

暂无
暂无

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

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