Це те, про що я думаю робити на сервері JEE Glassfish за допомогою Джерсі.
@GET
@Path("/{name}/{date}")
public String getMessages(@PathParam("name") String name, @PathParam("date") Date date)
Мені подобається думка про те, щоб можна було сказати людям, які споживають цю RESTful веб-службу, що "Датою тут є все, що працює з класом Date на Java". З точки зору це досить просто, що вони можуть просто подивитися на специфікацію дати, і вони вже матимуть працюючу модель, яку вони можуть перевірити.
Проблема, яка мене хвилює, полягає в тому, що коли я роблю це, JAX-RS не дуже приємно, коли Date () не подобається те, що потрапляє в конструктор. Оскільки Date () видає помилку, якщо вона не може проаналізувати те, що їй дано (наприклад, якщо ви передасте їй рядок "сьогодні" замість реальної дати), сервер JEE повертає помилку 404.
Це хороша практика? Чи є кращий спосіб зробити це, про що я не думаю?
DateTimeFormatter
. Для Java <= 7 я б використав:ThreadLocal