apollo-server icon indicating copy to clipboard operation
apollo-server copied to clipboard

Call for maintainers: apollo-server-micro

Open glasser opened this issue 3 years ago • 3 comments

As described in the roadmap, Apollo Server 4 will shift from the model of "9 web framework integrations maintained by a team who only uses one of them and nope, you can't create your own" to "a stable web framework integration API that anyone can use for their favorite web framework".

As part of this, the Apollo Server core team is no longer planning to maintain apollo-server-micro. We think users of Micro are best served if their framework integration is maintained by a team of people who use Micro every day.

This is where you come in! Do you love Micro? Do you use it with Apollo Server? Would you like to be part of a team of community members who maintain apollo-server-micro?

If so, chime in below! We'd love to find a group of people who will maintain the Apollo Server 4 version of apollo-server-micro, and to help us maintain the section of the Apollo Server docs that shows how to use Apollo Server with Micro.

We expect that maintaining this package will be more straightforward than maintaining an Apollo Server integration today, because its only responsibility will be translating Micro's HTTP request and response objects to the formats used by Apollo Server's new API.

At the time that this issue is opened, we are actively looking for interested collaborators; however, the API you'll be implementing isn't yet ready. We can use this issue to get a team together who can get started at some point between an initial alpha release of the new @apollo/server package and the final v4.0.0 release.

Some Micro-specific notes:

  • apollo-server-micro doesn't currently support all features that other Apollo Server integrations support (setting CORS headers, drainServer, etc). This means this is a nice opportunity to bring it to feature parity with other integrations, although some of that will be done in the opposite way where some of these features will no longer be the responsibility of Apollo Server at all.
  • As far as we understand, the vast majority of people using apollo-server-micro are not actually using it with Micro, but are using it with NextJS, and are doing so because some sample apps in the NextJS repository do so. I have attempted to change the examples to use apollo-server-express (because it supports more features than Micro and works fine in NextJS) and upgrade the examples to AS3 but they have not merged my PR. I am honestly quite curious to learn if anybody actually uses Micro itself with Apollo Server; if not it might be that this just isn't needed any longer. (NextJS users should be able to use @apollo/server directly in AS4 with no special integration, just like Express users.)

glasser avatar Jan 25 '22 21:01 glasser

If you're reading this, we're ready for you! We feel that Apollo Server 4's API is in a good place for integration authors to start building against. We've written a step-by-step guide and built out a couple of working examples.

If you're here and you're interested, please ping us here on the issue and let us know! I'm happy to answer any questions and help however I'm able.

-- Trevor

trevor-scheer avatar Jul 28 '22 23:07 trevor-scheer

Apollo Server v4.0.0 will be published to latest soon!

We now have a community GH org where people can create an integration repo as well as an NPM scope for publishing integration packages. If you'd like to be involved over there, feel free to get in touch with me. This is not a requirement for building and publishing an integration, but we wanted to offer a sensible place for these community-maintained packages to live.

https://github.com/apollo-server-integrations https://www.npmjs.com/search?q=%40as-integrations

trevor-scheer avatar Oct 10 '22 17:10 trevor-scheer

I think you finally found the first Micro user to need this 😛

We're a very small development team though so not sure if we have bandwidth to do this. Given we only expose a GQL api, I think we'll look into the standalone server.

vdhpieter avatar May 31 '23 13:05 vdhpieter