0
我有一個REST API,可以選擇支持兩個查詢字符串參數:starttime
和endtime
,這兩個參數都是不言自明的。來自REST API中可選QueryString參數的日曆對象
目前我將WebRequest
參數傳遞給我的控制器API並搜索時間戳(編碼爲Long
),然後將其轉換爲Calendar
。
我不知道是否有一種方法可以將Calendar
參數自動傳遞給API,而無需處理queryString。喜歡的東西
public Object[] myApi([...], Calendar startTime, Calendar endTime)
最重要的是,參數必須兩個是可選的(任何可以指定或爲空)
我如何能做到這一點在Spring MVC?當前代碼
例子:
@RequestMapping(value = "/rest/{datatype}", method = RequestMethod.GET, produces = { "application/json" })
public @ResponseBody
Object[] getData(@PathVariable("datatype") String dataType,
WebRequest request) throws HttpException {
if (dataType == null || "".equals(dataType))
throw new ClientException("Datatype cannot be empty");
Calendar timestampInit = null;
if (request.getParameter(PARAMETER_STARTTIME) != null) {
try {
timestampInit = Calendar.getInstance();
timestampInit.setTimeInMillis(Long.valueOf(request
.getParameter(PARAMETER_STARTTIME)));
} catch (NumberFormatException ex) {
throw new ClientException("Invalid start time", ex);
}
}
Calendar timestampEnd = null;
if (request.getParameter(PARAMETER_ENDTIME) != null) {
try {
timestampEnd = Calendar.getInstance();
timestampEnd.setTimeInMillis(Long.valueOf(request
.getParameter(PARAMETER_ENDTIME)));
} catch (NumberFormatException ex) {
throw new ClientException("Invalid end time", ex);
}
}
[...]
}