Wie kann ich komplexe Objekte als Argumente an einen RESTful Service übergeben?

Habe ich erfolgreich eingerichtet, eine schnelle Prüfung der Schaffung eines "REST-like" - service, gibt ein Objekt zu JSON serialisiert, und das war Recht einfach und schnell (basierend auf dieser Artikel).

Aber während der Rückkehr JSON-freundlich-Objekte war einfach, wie Pfirsich, ich habe noch zu sehen, alle Beispiele den Umgang mit input-Parameter sind nicht-primitive. Wie kann ich den pass in ein Komplex-Objekt als argument? Ich bin mit Apache CXF, aber Beispiele für die Verwendung von anderen frameworks, wie Jackson sind auch willkommen 🙂

Client-Seite wäre wahrscheinlich so etwas wie ein javascript-Objekt, übergeben Sie es in JSON.stringify(complexObj), und übergeben Sie die Zeichenfolge als Parameter.

Den service würde wahrscheinlich so Aussehen

@Service("myService")
class RestService {
    @GET
    @Produces("application/json")
    @Path("/fooBar")
    public Result fooBar(@QueryParam("foo") double foo, @QueryParam("bar") double bar,
        @QueryParam("object") MyComplex object) throws WebServiceException {
    ...
    }
}

Senden serialisierte Objekte als Parameter würde wahrscheinlich schnell berühren 2KB URL-beschränken, die von Internet Explorer. Würde dir empfehlen die Verwendung von POST in diesen Fällen, und würde, ich muss viel ändern in der Funktion Definitionen?

InformationsquelleAutor der Frage oligofren | 2011-05-19

Schreibe einen Kommentar