Change response type to response action #146
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi!
I wanted to use
ocaml-graphql-server
withopium
and found that it required the use ofCotthp_lwt.Server.response_action
to support the subscriptions.To support this use case, this PR adds a field
action
toRock.Response.t
and changeOpium.App.run_unix
function to useCohttp_lwt.Server.make_response_action
instead ofCohttp_lwt.Server.make
.Unfortunately, as
response_action
is IO-dependent, I had to functorize most ofOpium_kernel
.. It complexities the use ofOpium_kernel
quite a lot, so if you have any idea of how to supportresponse_action
differently, I can update the PR with a different solution 🙂For reference, I based my implementation of
ocaml-graphql-server
forcohttp
on this one:https://github.com/andreas/ocaml-graphql-server/blob/master/graphql-cohttp/src/graphql_cohttp.ml
And use it like this with opium handlers: