如何在rest get调用中将Java日期作为路径变量传递

T A*_*nna 4 java get date http spring-boot

有一个现有的 api 具有以下代码:

@GetMapping(value = "/getAmount")
public long getAmount(){

    Date d = new Date();
    long amountFetchedFromDb = callToDatabase(d);
    return amountFetchedFromDb;
}
Run Code Online (Sandbox Code Playgroud)

现在我需要更改功能如下:

@GetMapping(value = "/getAmount")
public long getAmount(){

    Date d = new Date();
    <CALL TO A NEW  REST API PASSING IT THE DATE d AND THE NEW API 
     WILL MAKE THE DB CALL AND RETURN THE AMOUNT>
    return amount;
}
Run Code Online (Sandbox Code Playgroud)

现在,我创建了一个新的休息服务,它将 java 日期作为路径变量,如下所示:

@GetMapping("/getAmount/{dateTo}")
public long getAmount(@PathVariable Date dateTo){

   long amountFetchedFromDb = callToDatabase(d);
   return amountFetchedFromDb;
}
Run Code Online (Sandbox Code Playgroud)

现在我需要测试我的新服务。如何传递下面请求中的日期:

http://localhost:8080/getAmount/

现有 api 中没有使用日期格式。它只是创建一个 java 日期并将查询传递给 Db。没有转换。所以,我不确定它会传递给我什么。因此,我所做的是创建一个简单的休息服务,它返回 new Date()。当我运行它时,我得到了响应1530137142067(今天是6月27日)。这是什么格式?

我希望这不会太令人困惑。如果我的疑问不清楚,请告诉我。

Dav*_*sus 10

如果您想使用 PathVariable,可以使用下面的示例方法:

//You can consume the path .../getAmount/2019-04-25
@GetMapping("/getAmount/{dateTo}")
public long getAmount(@PathVariable("dateTo") @DateTimeFormat(pattern = "yyyy-MM-dd") Date dateTo) {
    long amountFetchedFromDb = callToDatabase(dateTo);
    return amountFetchedFromDb;
}
Run Code Online (Sandbox Code Playgroud)