On Tuesday, 19 June 2018 at 13:55:34 UTC, Steven Schveighoffer wrote:
On 6/19/18 9:43 AM, Anton Fediushin wrote:
On Tuesday, 19 June 2018 at 08:56:05 UTC, Russel Winder wrote:
I would like to build a back-end server that performs some processing on the body of the HTTP request it receives.  To begin with, I would like it to simply echo the request body back to the client.

There is vibe.web.rest which covers 90% of everything one might need for their back-end application. There's practically no reason to bother with bodyReaders/Writers.

The one reason I found is that the REST interface must serialize everything before returning.

For example, if you are looking for ALL the data from your database, instead of streaming it while parsing the database, you have to serialize the entire database to an in-memory array, and return that, which the REST interface will then serialize to JSON.

In my case, I had to output the data manually to avoid insane memory consumption.

-Steve

Indeed, that's one of the cases where vibe.web.rest isn't as helpful. Interesting thing is, vibe.web.web provides such functionality (methods can return InputStream) even though:

Module vibe.web.web
Implements a declarative framework for building web interfaces.

This module contains the sister funtionality to the vibe.web.rest module. While > the REST interface generator is meant for stateless machine-to-machine communication, this module aims at implementing user facing web services. Apart from that, both systems use the same declarative approach.

I have no idea why machine-to-machine communication can't have InputStream and machine-to-user can.

Reply via email to