movio / bramble

A federated GraphQL API gateway
https://movio.github.io/bramble/
MIT License
497 stars 55 forks source link

using Bramble as a library, add query/mutation resolvers in the gateway #157

Closed qshanahan-springhealth closed 2 years ago

qshanahan-springhealth commented 2 years ago

This relates to #98.

Is there a way I could patch the schema Bramble creates with my own query/mutation handlers? Not all of the services I'm dealing with speak graphql, and in those few instances i would like to implement simple pass-thru resolvers that can wrap a REST service. Obviously, this is outside of bramble's feature set, but if bramble is modular enough it seems like this is something I could do myself.

nmaquet commented 2 years ago

@qshanahan-springhealth This is possible out of the box in Bramble by writing a plugin. A Bramble plugin can act as a federated service that runs in-process alongside Bramble itself.

See https://github.com/movio/bramble/blob/main/docs/write-plugin.md#expose-and-federate-a-graphql-endpoint for more information.

The Meta plugin might be a good example for you to look at: https://github.com/movio/bramble/blob/main/plugins/meta.go

pkqk commented 2 years ago

@qshanahan-springhealth further to @nmaquet's point that you could do this as a bramble plugin, if you don't want to run a separate process then that's a good place to put the implementation but it may be simpler to run a separate service that offers the pass-thru resolvers and federate that to bramble.

nmaquet commented 2 years ago

@qshanahan-springhealth Closing this for now due to inactivity. Feel free to re-open if you have any other questions.