/opencrud

OpenCRUD is a GraphQL CRUD API specification for databases

MIT LicenseMIT

OpenCRUD

OpenCRUD is a GraphQL CRUD API specification for databases

Overview

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(where: { id: 4 }) {
    name
  }
}

returns:

{
  "user": {
    "name": "Mark Zuckerberg"
  }
}

Rationale

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.

Reference Implementation

Prisma serves as a reference implementation of OpenCRUD

Projects compatible with OpenCRUD

Feel free to create a PR to add your project to the list

Index

  • 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
      • Mutations
      • Subscriptions
      • Generated type names