JAX-RS: регистрозависимые пути - PullRequest
2 голосов
/ 10 ноября 2011

Я привязал службы / методы REST к шаблону URI с помощью аннотации @Path.Это выглядит как обычно:

@GET
@Path("/message")
@Produces("application/json")
public Response getMessage() { ... }

Но моя служба REST должна быть без учета регистра.Теперь я использую регулярное выражение в @Path во всем моем коде так:

@GET
@Path("/{message:[mM][eE][sS][aA][gG][eE]}")
@Produces("application/json")
public Response getMessage() { ... }

Это выглядит странно.Есть ли что-то, что я упустил из виду (надеюсь, что нет, см. this ) или есть какая-либо особенность реализации JAX-RS для этого?Сейчас я использую JBoss RESTeasy .

Спасибо.

Ответы [ 3 ]

3 голосов
/ 11 ноября 2011

я не знаю resteasy, но если он поддерживает весь синтаксис Java Regex, вы можете использовать (?i:message) вместо вашего шаблона.

1 голос
/ 10 ноября 2011

Если вам действительно нужно сделать API-интерфейс нечувствительным к регистру, и вы используете Apache на внешнем интерфейсе своего сайта, рассмотрите возможность сделать это вне кода: определите свой API со всеми строчными URL-адресами и используйте Mod-Rewrite, чтобы измените URL-адреса на строчные, когда они попадают на веб-сервер, независимо от того, что клиент фактически отправил. Это сообщение в блоге описывает, как это сделать.

0 голосов
/ 22 августа 2018

Также у меня работает следующий шаблон:

@Path("/{externalorders: (?i)externalorders}")
...