java - JAX-RS: rutas insensibles a mayúsculas y minúsculas
annotations case-insensitive (2)
He anclado servicios / métodos REST a la plantilla URI mediante la anotación @Path
. Parece como de costumbre:
@GET
@Path("/message")
@Produces("application/json")
public Response getMessage() { ... }
Pero mi servicio REST tiene que ser insensible a mayúsculas y minúsculas. Ahora estoy usando expresiones regulares en @Path
en todo mi código así:
@GET
@Path("/{message:[mM][eE][sS][aA][gG][eE]}")
@Produces("application/json")
public Response getMessage() { ... }
Esto se ve raro. ¿Hay algo que pase por alto en la especificación (espero que no, vea esto ) o tiene alguna de las características especiales de las implementaciones JAX-RS para eso? Ahora estoy usando JBoss RESTeasy .
Gracias.
No sé demasiado, pero si es compatible con toda la sintaxis de expresiones regulares de java, podría utilizar (?i:message)
lugar de su patrón.
Si realmente necesita hacer que la API no distinga entre mayúsculas y minúsculas y utiliza Apache en el front-end de su sitio, considere hacerlo fuera del código: defina su API con las URL en minúsculas y use Mod-Rewrite para cambiar las URL. a minúsculas cuando llegan al servidor web sin importar lo que el cliente realmente envió. Esta publicación de blog describe cómo hacer esto.