apollo-server: [apollo-server-fastify] playground not working

I followed the instructions at https://www.npmjs.com/package/apollo-server-fastify and the /graphql endpoint works but it doesn’t run the playground even with playground: true, introspection: true in the settings.

Versions

"dependencies": {
  "fastify": "3.2.0",
  "apollo-server-fastify": "2.16.1"
},

Expected behavior:

Going to /graphql with a browser should run the playground

Actual behavior:

It shows: GET query missing.

How to reproduce it:

You can run the example in a CodeSandbox:
https://codesandbox.io/s/wispy-dream-66j5g?file=/package.json:197-281

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 36
  • Comments: 21 (4 by maintainers)

Commits related to this issue

Most upvoted comments

To fix this issue, I simply upgrade the apollo-server-fastify to “apollo-server-fastify”: “^3.0.0-alpha.3” .

The alpha version seems not safe, But I didn’t see any errors so far

Thanks @abernix for the update. We are working with a client to deploy a graphql gateway/orchestrator solution. We have an sla for high throughput, which is why I’m recommending Fastify as the underlying web framework. Apollo server needs to side with performance because it often ends up in the forefront ingesting all traffic in transitional architectures, and therefore Fastify (the performance web framework) is equally important to prioritize. I am excited to get graphql and Apollo into production in the near future and thanks for the great work.

Same here, when using it with nestJs. Got the same result of GET query missing.

... 
"@nestjs/platform-fastify": "^7.4.2",
"apollo-server-fastify": "^2.16.1",
...
 export const graphQLConfig: GqlModuleOptions = {
    typePaths: ['./**/*.graphql'],
    // playground: environment.isDevelopment,
    playground: true,
    ...
}

Although this issue may be fixed, I’m unable to test it with 3.0.0-alpha.4 due to startup error:

TypeError: this.ensureStarting is not a function at ApolloServer.createHandler (/node_modules/apollo-server-fastify/dist/ApolloServer.js:22:14)

This is fixed on the release-3.0 branch, which supports Fastify v3 (only). Apollo Server 3.0 is now under active development; I hope to get some alphas out within a week.

Faced the same issue. Seems like its because this package doesnt support fastify v3. Downgrading to fastify 2 makes it work.

I guess we can either wait for https://github.com/apollographql/apollo-server/pull/4356 to land or downgrade to fastify v2 for the time being.

For those attempting to use Apollo Server 3.x for its newer Fastify version, please see https://github.com/apollographql/apollo-server/pull/4356#issuecomment-677515901, which is a comment I wrote for a similar audience on another PR which introduced the functionality. In particular, pay attention to my suggestion in that comment about reading the v3 CHANGELOG.md for details on how installSubscriptionsHandlers is affected (Subscriptions has been de-coupled from the core of the project, but is still installable separately).

Weird. I have the same versions for everything but graphql-tools, for which I have ^6.2.5. I decided to change back to express for now until apollo-server-fastify 3 leaves alpha. Thanks @Duduzera1997!

@phattranky @Duduzera1997 I upgraded to the alpha version but get this error. What version of the graphql and @nestjs/graphql packages are you using?

(node:1501) UnhandledPromiseRejectionWarning: TypeError: this.apolloServer.installSubscriptionHandlers is not a function
    at GraphQLModule.<anonymous> (/Users/inakineitor/Documents/Couponara/couponara-backend/node_modules/@nestjs/graphql/dist/graphql.module.js:97:35)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/inakineitor/Documents/Couponara/couponara-backend/node_modules/tslib/tslib.js:111:62)
(node:1501) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:1501) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

Would love an update for Fastify v3!