I will try to fit into my use case. That said I am sort of confused with the 
OutputStream. As far as I understand it the output stream is when I write to a 
sink but not read from a source. If we want to support streaming in the 
InternalRequest it needs to provide an InputStream and the 
ResponseBondySupports needs to be using a Buffered Output Stream to facilitates 
that. I am thinking of having big files or images than then later are streamed 
to the caller outside of Sling.

Also the current code from GitHub is having the checkStatus() on the execute(). 
I think that having a separate method (checkStatus()) is better than having on 
the execute(). That said I think we also should support multiple Status to be 
accepted.

Cheers - Andy

> On Jun 10, 2020, at 7:07 AM, Bertrand Delacretaz <[email protected]> 
> wrote:
> 
> Hi,
> 
> On Wed, Jun 3, 2020 at 11:03 AM Bertrand Delacretaz
> <[email protected]> wrote:
>> ...for my use cases a fluent interface to the SlingRequestProcessor would be 
>> nice...
> 
> I have now implemented a fluent helper for internal requests, using
> either the SlingRequestProcessor (for full fidelity compared to HTTP
> requests) or the ServletResolver (faster, no Servlet Filters - thanks
> Radu for mentioning that option), at SLING-9512 and [1].
> 
> Here's a usage example, the tests [1] have more:
> 
> OutputStream os = InternalRequest
>  .servletRequest(resourceResolver, servletResolver, "/some/path")
>  .withResourceType("website/article/news")
>  .withResourceSuperType("website/article")
>  .withSelectors("print", "a4")
>  .withExtension("pdf")
>  .execute()
>  .checkStatus(200)
>  .checkResponseContentType("application/pdf")
>  .getResponse()
>  .getOutputStream();
> 
> Feedback is welcome! I'm using this in the GraphQL core that I'd like
> to release soon, will need to release the servlet-helpers module as
> well.
> 
> -Bertrand
> 
> [1] https://github.com/apache/sling-org-apache-sling-servlet-helpers

Reply via email to