# GraphQL
## #OpenQuestions
- How do you do a partial update to an entity that clears a previously populated field? (similar to a PATCH REST operation) It seems that GraphQL [might not support explicitly passing null](https://github.com/graphql/graphql-js/issues/133). Is this even a good API design pattern? Should all update mutations require the full entity be 'PUT' rather than allowing field by field updates? But for large entities that could be changed from multiple sources, this could introduce concurrency issues, so I think a partial selective update is usually desirable.
- Is it possible to access an authenticated GraphQL endpoint (e.g. AppSync endpoint with Open ID Connect auth configure) only for schema and docs access (not to actually invoke a query/mutation)? I suspect not.
- More generally, what all factors need to be considered when designing a greenfield architecture for a client to make the decision between REST and GraphQL?
- There are 2 general schema-styles I've noticed. Do these styles have names and are there pros and cons of each:
- Ones which have each node named like an imperative method, e.g. `getProjects`
- Node is named in more [[REST API Design|REST]] style using pluralised nouns, e.g. `projects`
## Tools
- [Pothos](https://pothos-graphql.dev) – Tool for building GraphQL schema files from Typescript, without needing codegeneration. *"By leveraging type inference and typescript's powerful type system Pothos requires very few manual type definitions and no code generation."*
## See also
- [[AWS AppSync]]
- [[GUI clients for GraphQL APIs]]
---
tags: #API, #GraphQL