在我使用Spring Framework开发的REST API中,我有一个Rest端点接收Two Double值,Rest Call是:http://localhost:8080/restapp/events/nearby/12.910967/77.599570
这里,第一个参数(双数据类型),即12.910967我能正确接收,即12.910967。 但是第二个参数,即77.599570我只能在小数点截断后收到77.0的数据。
我的REST后端是:
@RequestMapping(value = "/nearby/{lat}/{lngi}", method = RequestMethod.GET, produces = "application/json")
public List<Event> getNearByEvents(@PathVariable("lat") Double lat, @PathVariable("lngi") Double lngi, HttpServletResponse response) throws IOException
如何在REST api中接收双数据类型?
答案 0 :(得分:3)
更新您的代码,如下所示 - 请注意指定正则表达式的{lngi:.+}
,这意味着某些字符将显示在.
@RequestMapping(value = "/nearby/{lat}/{lngi:.+}", method = RequestMethod.GET, produces = "application/json")
public List<Event> getNearByEvents(@PathVariable("lat") Double lat, @PathVariable("lngi") Double lngi, HttpServletResponse response) throws IOException
答案 1 :(得分:1)
我认为这可能与此处描述的问题相同:
据报道,有些东西试图将后缀匹配应用于传入的URL ...并且在最终路径组件中的第一个点之后消耗了所有内容。
事实上,这种行为被认为是一个错误,并在Spring 3.1中得到修复:
答案 2 :(得分:0)
您可以尝试在RequestMapping值中使用正则表达式强制整个值:
@RequestMapping(value = "/nearby/{lat}/{lngi:\d+\.\d+}")