Ich verwende Jersey, um eine RESTful-API zu implementieren, die hauptsächlich JSON-codierte Daten abruft und bereitstellt. Aber ich habe einige Situationen, in denen ich Folgendes erreichen muss:
- Exportieren Sie herunterladbare Dokumente wie PDF, XLS, ZIP oder andere Binärdateien.
- Rufen Sie mehrteilige Daten ab, z. B. JSON und eine hochgeladene XLS-Datei
Ich habe einen einseitigen JQuery-basierten Webclient, der AJAX-Aufrufe für diesen Webdienst erstellt. Im Moment werden keine Formularübermittlungen durchgeführt und GET und POST (mit einem JSON-Objekt) verwendet. Sollte ich einen Formularbeitrag zum Senden von Daten und einer angehängten Binärdatei verwenden oder kann ich eine mehrteilige Anforderung mit JSON plus Binärdatei erstellen?
Die Service-Schicht meiner Anwendung erstellt derzeit einen ByteArrayOutputStream, wenn eine PDF-Datei generiert wird. Was ist der beste Weg, um diesen Stream über Jersey an den Client auszugeben? Ich habe einen MessageBodyWriter erstellt, weiß aber nicht, wie ich ihn aus einer Jersey-Ressource verwenden soll. Ist das der richtige Ansatz?
Ich habe die in Jersey enthaltenen Beispiele durchgesehen, aber noch nichts gefunden, das veranschaulicht, wie eines dieser beiden Dinge zu tun ist. Wenn es darauf ankommt, verwende ich Jersey mit Jackson, um Object-> JSON ohne den XML-Schritt auszuführen, und verwende JAX-RS nicht wirklich.
Response
Objekt zurückzugeben. Auf diese Weise können Sie den Medientyp, den HTTP-Antwortcode usw. einfach steuern. Lassen Sie mich wissen, ob ich einen Code veröffentlichen soll.