OpenCRUD is a GraphQL CRUD API specification for databases
OpenCRUD is a fully GraphQL compliant query language to access and modify data. OpenCRUD provides API flavours for many popular databases including MySQL and MongoDB.
For example, this OpenCRUD query retrieves a single user:
{
user(whare: { id: 4 }) {
name
}
}
returns:
{
"user": {
"name": "Mark Zuckerberg"
}
}
GraphQL is a flexible query language supporting many different data access patterns. In practice, simple CRUD operations turn out to be a very common pattern. Standardising this very common pattern enables the community to build tooling specific to the common CRUD style API.
Prisma serves as a reference implementation of OpenCRUD
- Prisma
- PostGraphile (planned)
- VulcanJS (planned)
Feel free to create a PR to add your project to the list
- Specs
- SDL for data modelling: non normative
- relational
- Intro
- Areas covered
- Focus on API, not implementation/runtime characteristics
- Queries
- Top level
- Single fields multi fields
- Multi field conenctions
- Node field
- Relations
- Both simple and connection
- Connections
- Aggregations
- Cursor
- Filters
- Data type specific filters
- Single node
- Multi node
- Cross-relation filters
- Aggregations
- Top level
- Mutations
- CRUD
- Overview
- Create
- Update
- Delete
- Batch mutations
- Overview
- Update
- Delete
- Nested mutations
- Return type
- CRUD
- Subscriptions
- Generated type names
- Intro