gpt4 book ai didi

java - 验证 Spring 休息 Controller 中的请求参数日期

转载 作者:行者123 更新时间:2023-12-02 12:08:59 24 4
gpt4 key购买 nike

我想验证日期作为请求参数。

我的端点 URL 类似于

http://localhost:8080/api/get/getCurrencyRate?date=02-20-2017

Controller :

@RequestMapping(value = "/getCurrencyRate", produces={"application/json"}, 
method = RequestMethod.GET)
public CurrenctRate getCurrencyrate(@RequestHeader ("Authorization") String
authorization, @RequestParam(value="date") @DateTimeFormat(pattern="MM-dd-
yyyy") @Valid Date date) throws Exception {

对于上述输入(2017 年 2 月 20 日)服务运行良好。我想验证请求参数并向用户发送适当的响应。我怎样才能做到这一点。

例如如果请求是这样的

http://localhost:8080/api/get/getCurrencyRate?date=02/20/2017

响应应为“请以“MM-DD-YYYY”格式输入日期”

而现在我得到了

Error code **400**
<b>JBWEB000069: description</b>
<u>JBWEB000120:

- The request sent by the client was syntactically incorrect.

</u>

请指教。

最佳答案

我能想到的最好的解决方案是为所有类型的日期格式提供方法,但形成路径,或使用路径参数,如下所示:

//Using Path
@RequestMapping(value = "/getCurrencyRate/{date}", produces={"application/json"}, method = RequestMethod.GET)
public CurrenctRate getCurrencyRateOfDate(@RequestHeader ("Authorization") String authorization, @PathVariable("date") @DateTimeFormat(pattern="MM/dd/yyyy") @Valid Date date) throws Exception {

或者,带有请求参数

//Using Request Parameter
@RequestMapping(value = "/getCurrencyRate", produces={"application/json"}, method = RequestMethod.GET)
public CurrenctRate getCurrencyrate(@RequestHeader ("Authorization") String authorization, @RequestParam(value="date") @DateTimeFormat(pattern="MM/dd/yyyy") @Valid Date date) throws Exception {

这样,Spring REST 就可以将您的请求与 API 调用相匹配。

关于java - 验证 Spring 休息 Controller 中的请求参数日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46692104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com