Senden eines Dokumentenstroms an einen Jersey @ POST-Endpunkt

8

Ich möchte einen Stream aus einer Reihe von Dokumenten an einen Webdienst senden . Dies spart den HTTP-Request / Response-Overhead und konzentriert sich auf die Dokumente selbst.

In Python können Sie so etwas tun:

%Vor%

Ich bin auf der Suche nach einem Beispiel für jemanden, der eine Anfrage an eine Jersey-Rest-API streamt. Ich hatte gehofft, die Client-Seite und die Server-Seite zu sehen, dass es funktioniert. Aber ich kämpfe hart, um dort ein Beispiel zu finden.

Das Beispiel würde idealerweise zeigen:

%Vor%

Wenn wir es richtig verstanden haben, werden Sie Entitäten auf dem Server verarbeiten, während Sie sie noch auf dem Client senden! Riesiger Gewinn!

    
Nicholas DiPiazza 27.07.2016, 12:22
quelle

1 Antwort

5

Eine der einfachsten Möglichkeiten, dies zu erreichen, besteht darin, Jersey den POST-Handler mit einem InputStream für den HTTP-POST-Body versehen zu lassen. Die Methode kann den InputStream - und JSON-Parser Ihrer Wahl verwenden, um jedes Objekt zu analysieren und dann zu behandeln.

Im folgenden Beispiel erzeugt die a Jackson ObjectReader eine MappingIterator , die jedes Person -Dokument im Array analysiert und verarbeitet, wenn es an den Server geliefert wird.

%Vor%

Ebenso kann das Jersey Client-Framework einen Stream von Dokumenten senden, wenn es mit einem Jackson ObjectMapper konfiguriert wurde. Das folgende Beispiel demonstriert dies mit dem Jersey Test-Framework. Der Client streamt einen beliebig großen Iterator von Person documents

%Vor%     
jdgilday 07.08.2016, 21:23
quelle

Tags und Links