[英]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.