## Evaluation criteria - API feature set: - Autodetects latest schema from AppSync endpoint URL - Standard GraphQL queries and mutations - GraphQL variables - JWT Authorization tokens - Custom HTTP headers - Displays documentation on top of schema - Hosting: - Desktop app (including Electron) - Hosted web app - Self-hosted web app - Friction to access (e.g. requiring AWS console account) ## Client pros and cons - **[GraphQL Playground](https://www.apollographql.com/docs/apollo-server/testing/graphql-playground/)**. - ✅ Open source, standardised UI based on top of GraphiQL - ✅ [Electron desktop app available](https://github.com/graphql/graphql-playground) - ✅ Hosted web app at [GraphQLBin](https://www.graphqlbin.com) (However, I'm wary about passing Auth tokens through third-party hosted web apps for prod environments) - ✅ Downloads schema from AppSync endpoint URL (so long as auth token provided) - 👎 GUI seems to be missing a few GraphiQL things, such as checkboxes to select what fields to return. Instead you need to type and rely on intellisense, which is slower. - **[Postman](https://www.postman.com)** ([supports GraphQL](https://www.postman.com/graphql/)) - ✅ Desktop app - ✅ Can use other Postman features such as collections, environment variables, canned requests and team sharing. - 👎 Requires schema to be manually re-imported whenever a change is made to it. Can't seem to configure a schema endpoint URL and uploading the raw graphql file from source isn't useful as it has AWS-specific types in it. - TODO check if it generates docs - **[AWS AppSync Console](https://aws.amazon.com/about-aws/whats-new/2020/09/aws-appsync-improves-the-experience-to-query-graphql-apis-in-the-aws-console/)** - ✅ Standardised UI based on top of GraphiQL - ✅ Hosted - ✅ Always has the latest deployed schema - 👎 Requires AWS Console login - 👎 No desktop app - [Altair](https://altair.sirmuel.design) - #TODO - [Insomnia](https://insomnia.rest/)