starttime
オプションでとの 2 つのクエリ文字列パラメーターをサポートする REST API がありますendtime
。どちらも一目瞭然です。
現在、WebRequest
パラメーターをコントローラー API に渡し、タイムスタンプ ( としてエンコードされている) を検索しLong
、それを に変換しCalendar
ます。
Calendar
queryString の処理を行わずに、パラメーターを自動的に API に渡す方法はあるのだろうか。何かのようなもの
public Object[] myApi([...], Calendar startTime, Calendar endTime)
最も重要なことは、パラメーターは両方ともオプションである必要があることです (いずれかを指定するか、null にすることができます)。
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);
}
}
[...]
}