Wie erstelle REST-API mit optionalen Parametern?
Brauche ich, eine API zu implementieren, die mit diesen Pfad params.
@Path("/job/{param1}/{optional1}/{optional2}/{param2}")
Können der zweite und Dritte Parameter von optional? Also der client muss nicht passieren, aber passieren müssen das erste und das Letzte.
Wenn dies nicht möglich ist, dann ist es empfohlen, zum ändern der Parameter auf diese Weise?
@Path("/job/{param1}/{param2}/{optional1}/{optional2}")
Wie die optionalen params?
- es ist besser, ändern Sie die Reihenfolge der Parameter, Wenn ich die Wahl hätte, ich würde getrennt haben, obligatorisch und optional in 2 Abschnitte, getrennt durch ein Trennzeichen in der URL dann zur Pflicht machen, als positions -, und optional als Schlüssel-Wert-paar, ich weiß nicht, wie, welcher Mandant, unter welchem Szenario sind Sie den code schreiben, was haben Sie versucht bis jetzt?
- Ich bin mit JAX-RS. Ich bezog mich auf nakov.com/blog/2009/07/15/.... Ist es erforderlich für die Verwendung von regex, oder gibt es eine andere Möglichkeit?
- Wie würden Sie unterscheiden
optional1
undoptional2
im/job/foo/bar/baz
? Was istbar
? - Ich bin in der Lage, optionale Parameter mit Hilfe der Lösung in www.nakov.com/blog/2009/07/15/jax-rs-path-pathparam-and-optional-parameters. So mein Problem ist jetzt gelöst.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine übereinstimmung mit dem gesamten Pfad endet in den REST-Anforderung
Nun die path-variable enthalten gesamten Pfad nach
location/{locationId}
Können Sie auch regulären Ausdruck verwenden, um den Pfad optional.
Wenn Sie jetzt format und Kodierung optional. Sie geben keinen Wert, Sie wird leer sein.
Könnte es einfacher sein, um drehen Sie den optionalen Pfad-Parameter in die Abfrage-Parameter. Sie können dann mit
@DefaultValue
wenn Sie es brauchen:Können Sie dann rufen Sie es mit
/job/one/two?optional1=test
Weitergabe nur nach den optionalen Parametern, die Sie benötigen.Ordnen Sie die Parameter und probieren Sie die folgenden: