Ich entwickle eine REST-API Restlet.Restlet URL/Pfad Muster mismapping
Bisher wurde alles funktioniert ganz gut. Allerdings traf ich jetzt ein Problem mit der Router
Zuordnung von URL zu ServerResource
.
Ich habe das folgende Szenario bekam:
- GET
/car
gibt eine Liste aller Autos - GET
/car/{id}
werden Details über das Auto mit der ID 1 /car/advancedsearch?param1=test
GET sollte eine Suche über alle laufen Autos mit einigen Parametern
Die ersten beiden Anrufe funktionieren ohne Probleme. Wenn ich jedoch versuche, den dritten Anruf zu starten, wird das Restlet Router
dem zweiten zugeordnet. Wie kann ich Restlet mitteilen, stattdessen den dritten Fall zu verwenden?
Meine Zuordnung ist wie folgt definiert:
router.attach("/car", CarListResource.class);
router.attach("/car/{id}", CarResource.class);
router.attach("/car/advancedsearch", CarSearchResource.class);
CarSearchResource
nie aufgerufen wird, sondern die Anforderung wird in CarResource
auf.
Der standardmäßige Anpassungsmodus des Routers ist auf Template.MODE_EQUALS
eingestellt, sodass er nicht verursacht werden kann.
Hat jemand weitere Vorschläge, wie ich es beheben könnte?
Bitte schlagen nicht /car
mit den Parametern, anstatt zu verwenden, da es bereits eine andere Art der Suche an seinem Platz auf diesem Niveau. Außerdem habe ich nicht die Kontrolle über die API-Struktur, also muss sie so bleiben wie sie ist.
Ich musste das nicht für den Haupt '/ car' Pfad tun, und dieser benutzt Parameter auch. Außerdem muss es '/ car/advancedsearch', nicht'/advancedsearch' sein. – Baz
Ich habe das jetzt auch versucht, aber das Ergebnis ist das gleiche. – Baz
es ist nur für Abfrageform – Igor