Open andreas opened 6 years ago
@andreas
Could you use use HTTP server that ships with graphql-lwt, or does it lack some feature compared to the one you implemented? At a glance they seem quite similar.
I'm guessing it's because of the static file serving logic. I had to do something similar to customize the included GraphiQL page.
Is there a way to include the module and override the assets/route handlers without vendoring graphql_lwt?
@osener that's indeed the reason; @andreas and I talked on Discord about it and I never responded in this issue.
Is there a way to include the module and override the assets/route handlers without vendoring graphql_lwt?
I think that's what this issue is for, correct me if I'm wrong: https://github.com/andreas/ocaml-graphql-server/issues/93
If I understand you correctly, what you're looking for is a way to compose the GraphQL HTTP handler with other routes. To that effect, Graphql_lwt.Server
could expose a function with the following type
'ctx Graphql_lwt.Schema.schema ->
Cohttp.Request.t ->
Body.t ->
'ctx ->
(Cohttp.Response.t * Body.t) Lwt.t
Is it something like that you're looking for?
I don't consider andreas/ocaml-graphql-server#93 to be about such a function, that's simply moving the HTTP server to it's own OPAM package.
That sounds like a good idea but I'd still put it in the separate package that https://github.com/andreas/ocaml-graphql-server/issues/93 is about.
If I wanna use ocaml-graphql-server with Httpaf, for example, I wouldn't want there to be Cohttp dependencies in the dependency I'm pulling.
@anmonteiro that makes sense π
Thanks for sharing your code, @anmonteiro! πIt's great to have some more examples out there.
Two quick suggestions/questions:
io_field
be replaced withfield
to avoidLwt_result.return
, e.g. this one?graphql-lwt
, or does it lack some feature compared to the one you implemented? At a glance they seem quite similar.