Tengo una clase este se anota con @Path
así:Jersey @Path para los sustantivos plurales/REST individuales en una misma clase
@Path("widgets")
@Produces(MediaType.APPLICATION_XML)
public class WidgetResource {
@GET
public Response getWidgets(@QueryParam("limit"))
{
//This class returns the plural noun, a list of widgets
//...}
@GET
@Path("widget/{id}")
public Response getWidgetById(@PathParam("id") long id)
{
//This class returns a single widget by id
//...}
Cuando el fuego de un cliente de prueba del localhost/mapas de widgets como se esperaba, pero cuando el método getWidgetById
está mapeado a localhost/widgets/widget/{id}
. Esto no es lo que quiero - me gustaría tener localhost/widgets and localhost/widget/{id}
He tratado de omitir la anotación @Path
a nivel de clase, pero que impide Jersey del reconocimiento de esta clase como un recurso REST (He intentado tanto la ScanningResourceConfig
y la ClassNameResourceConfig
- Ninguno ha podido cargar la clase como recurso a menos que hubiera un @Path
en el nivel de clase.
Supongo que una solución (fea) sería dividir los métodos entre clases en una clase WidgetResource
y una clase WidgetsResource
. Creo que esta es una solución terrible ya que ambos métodos comparten recursos en la misma clase, pero realmente necesito el REST-ful localhost/widget
(para una sola entidad) y localhost/widgets
(para el plural).
Me falta algo - ¿hay alguna manera para que Jersey tome la clase como una clase de Recursos si solo @Path
anota los métodos (no pude hacerlo funcionar), si no puedo forzar absoluto mapeo (@Path(/widget/{id})
) o algún mapeo relativo (@Path(../widget/id
) ninguno de los dos funciona en la realidad, solo una analogía de lo que busco. ¡Gracias!
Creo que tengo el widget/widgets del video, pero parece que podría estar recordando mal, en cualquier caso es parte de nuestra API, pero podemos cambiarlo si hay un buen caso. Voy a consultar con el equipo e ir con uno de los enfoques anteriores. ¡Gracias! – cschooley
@cschooley eso es gracioso, no recuerdo nada como esto. Supongo que lo veré nuevamente. – toniedzwiedz
Diseñamos nuestra API para tener un par plural singular de URL como esta (esta es la versión larga) (las cosas en plural comienzan a las 11:00): http://blog.apigee.com/detail/slides_for_restful_api_design_second_edition_webinar – cschooley