java - 如何在 REST WebService 中实现动态 URL
问题描述
我正在尝试为我的应用程序开发新的 Web 服务。
为此,我正在使用Spring REST-webservice
.
在控制器端,我试图根据传递的代理获取记录列表。现在要求,代理可以通过也可以为空。如果代理为空,则应选择所有记录。否则只有那些记录被取走。
尝试使用下面的代码来实现动态性。根据搜索结果之一,但它不起作用。
@RequestMapping(value = "/staging/{agentCode: [^/]*?}" , method =
RequestMethod.GET)
这是我现有的代码:
@Controller
@RequestMapping(value="/batches")
public class BatchController {
@SuppressWarnings({ "rawtypes" })
@RequestMapping(value="/staging/{agentCode}", method =
RequestMethod.GET)
@ResponseBody
public ResponseEntity IntmBatch(@PathVariable("agentCode") String
agentCode)
{
//code here
}
案例 1:当我使用类似 . 的 URL 时,
www.example.com/myapplication/batches/staging/1234
它工作正常并获取所需的结果。
案例2:但是,如果我没有传递任何参数说。,
www.example.com/myapplication/batches/staging/
在哪里,我没有传递任何参数。它说我找不到映射。
你能告诉我如何在REST
GET 请求方法调用中实现这个动态 URL。
提前致谢!!
解决方案
@Pathvariable
您可以使用@RequestParam
URL 中的可选值,而不是使用。
所以你的网址会像。
案例 1:www.example.com/myapplication/batches/staging?agentCode=1234
&
案例 2: www.example.com/myapplication/batches/staging
希望它能解决您的问题。
@SuppressWarnings({ "rawtypes" })
@RequestMapping(value="/staging", method = RequestMethod.GET)
@ResponseBody
public ResponseEntity IntmBatch(@RequestParam(name="agentCode",required=false) String agentCode)
{
//code here
}
推荐阅读
- graph - Gremlin 查询:如何 AND & OR 关系?
- python - 如何在不影响 0 权重神经元的情况下计算 FLOPs 和 Params?
- c++ - C++ 异常框架是否需要内核支持?
- typescript - Type Guard Typescript 未正确推断函数剩余参数
- python - 如何限制 jsonschema 中未声明的添加字段
- reactjs - 反应路由器dom的问题
- html - 如何使用管道过滤到 Ionic 中的两个列表
- asp.net-core - ASP.NET Core,AddScoped 不保留具有相同请求的数据
- android - 如何从选项卡式活动中片段的 Textview/Button 开始新活动
- apache-camel - 如何在仅限 Java 的 Camel Main 中配置 REST 属性?