graphql-rust / juniper

GraphQL server library for Rust
Other
5.72k stars 425 forks source link

Possible API improvements to `juniper_hyper` #1102

Open LukasKalbertodt opened 2 years ago

LukasKalbertodt commented 2 years ago

While working on #1101 , I thought of a couple more possible improvements.

For one, I think it would be useful to make parse_req and execute_request[_sync] public. With that, it would be possible to inspect the GraphQLRequest before executing it (e.g. for logging). It's even questionable whether the convenience graphql[_sync] functions are even necessary then, as they just call these two other functions.

All functions taking a Request<Body> should also be able to take a Request<String>. The body is converted to a string internally anyway and users of the library might already have a Response<String>. This also helps with users inspecting the request beforehand, given that String is much easier to use than hyper::Body. However, extending the API like that is a bit harder than #1101 as we still want to support Body.

tyranron commented 2 years ago

@LukasKalbertodt let's give it a try 😉