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