## 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/)