Mam klasy, to jest opatrzone @Path
tak:Jersey @Path dla liczby mnogiej rzeczowników/Single Spoczywaj w tej samej klasie
@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
//...}
Kiedy odpalić klienta testowego localhost/widgety mapy zgodnie z oczekiwaniami, ale gdy metoda getWidgetById
jest odwzorowana na localhost/widgets/widget/{id}
. To nie jest to, co chcę - chciałabym mieć localhost/widgets and localhost/widget/{id}
Próbowałem pomijając adnotacji na poziomie klasy @Path
, ale zapobiega Jersey od rozpoznawania tej klasy jako REST Zasobu (próbowałem zarówno ScanningResourceConfig
i ClassNameResourceConfig
- nie udało się załadować klasy jako zasobu, chyba że na poziomie klasy było @Path
).
Myślę, że (brzydkie) obejście byłoby podzielenie metod między klasami WidgetResource
klasy i WidgetsResource
klasy. Myślę, że to straszne rozwiązanie, ponieważ obie te metody dzielą zasoby w tej samej klasie, ale naprawdę potrzebuję REST-ful localhost/widget
(dla pojedynczego obiektu) i localhost/widgets
(dla liczby mnogiej).
Czy brakuje mi czegoś - czy jest jakiś sposób dla mnie, aby Jersey odebrał klasę jako klasę zasobów, jeśli tylko przytoczę metody (nie mogłem jej uruchomić), jeśli nie, mogę wymusić absolutną mapowanie (@Path(/widget/{id})
) lub mapowanie względne (@Path(../widget/id
) - żadna z nich nie działa w rzeczywistości - tylko analogia tego, do czego dążę. Dzięki!
Chyba mam widżet/Widżet z wideo, ale wygląda na to, że mógłbym pamiętać o tym źle - w każdym przypadku jest to część naszego API, ale możemy to zmienić, jeśli jest dobry przypadek. Mam zamiar skonsultować się z zespołem i pójść z jednym z powyższych podejść. Dzięki! – cschooley
@cschooley to zabawne, nie pamiętam czegoś takiego. Chyba sam go obejrzę. – toniedzwiedz
Zaprojektowaliśmy nasze API, aby mieć pojedynczą parę adresów URL, takich jak ta (jest to wersja długa) (liczba mnoga zaczyna się od 11:00): http://blog.apigee.com/detail/slides_for_restful_api_design_second_edition_webinar – cschooley