All Projects → remorses → Mongoke

remorses / Mongoke

Instant Graphql for MongoDb (active branch is golang, rewrite in process)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Mongoke

Space Cloud
Open source Firebase + Heroku to develop, scale and secure serverless apps on Kubernetes
Stars: ✭ 3,323 (+1536.95%)
Mutual labels:  graphql, microservice, serverless, database, mongodb
Autoserver
Create a full-featured REST/GraphQL API from a configuration file
Stars: ✭ 188 (-7.39%)
Mutual labels:  graphql, serverless, database, mongodb
Webiny Js
Enterprise open-source serverless CMS. Includes a headless CMS, page builder, form builder and file manager. Easy to customize and expand. Deploys to AWS.
Stars: ✭ 4,869 (+2298.52%)
Mutual labels:  graphql, microservice, serverless, cloud
Graphql Microservices
Showcasing a graphql microservice setup
Stars: ✭ 68 (-66.5%)
Mutual labels:  graphql, microservice, docker-compose
Neo4j Graphql
An optimized neo4j query resolver for Facebook's GraphQL
Stars: ✭ 60 (-70.44%)
Mutual labels:  graphql, schema, database
App
Reusable framework for micro services & command line tools
Stars: ✭ 66 (-67.49%)
Mutual labels:  graphql, database, jwt
Hexa
Hexa: The ultimate companion for Azure. Setup and deploy in seconds
Stars: ✭ 56 (-72.41%)
Mutual labels:  serverless, cloud, database
Dksnap
Docker Snapshots for Development and Test Data
Stars: ✭ 122 (-39.9%)
Mutual labels:  database, containers, docker-compose
Docker For All
Docker applied in development, devops, testing, product management etc.
Stars: ✭ 88 (-56.65%)
Mutual labels:  microservice, containers, docker-compose
Go Clean Architecture
👨‍💻 REST API example, built by following Uncle Bob’s clean architecture principles
Stars: ✭ 133 (-34.48%)
Mutual labels:  mongodb, jwt, docker-compose
Express Mongodb Rest Api Boilerplate
A boilerplate for Node.js apps / Rest API / Authentication from scratch - express, mongodb (mongoose).
Stars: ✭ 153 (-24.63%)
Mutual labels:  mongodb, jwt, docker-compose
Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Stars: ✭ 8,439 (+4057.14%)
Mutual labels:  graphql, microservice, serverless
Pulumi
Pulumi - Developer-First Infrastructure as Code. Your Cloud, Your Language, Your Way 🚀
Stars: ✭ 10,887 (+5263.05%)
Mutual labels:  serverless, cloud, containers
Wertik Js
💪 A library that powers your app with GraphQL + Rest API
Stars: ✭ 56 (-72.41%)
Mutual labels:  graphql, database, mongodb
Terrahub
Terraform Automation and Orchestration Tool (Open Source)
Stars: ✭ 148 (-27.09%)
Mutual labels:  serverless, cloud, containers
Twitter Clone With Graphql Reactnative
Stars: ✭ 155 (-23.65%)
Mutual labels:  graphql, mongodb, jwt
Docker
Directus Docker — The Official Docker Container for the Directus Suite
Stars: ✭ 93 (-54.19%)
Mutual labels:  graphql, database, containers
Antvueblogfront
🔥使用Vue全家桶 + Egg + Mongodb 写的个人网站博客。使用docker compose 一键部署。(最近比较忙,部署还有点问题,后期补上)
Stars: ✭ 36 (-82.27%)
Mutual labels:  mongodb, jwt, docker-compose
Docker Flask Mongodb Example
Uses docker compose with a python flask microservice and MongoDB instance to make a sample application
Stars: ✭ 49 (-75.86%)
Mutual labels:  microservice, mongodb, docker-compose
Graphql Genie
Simply pass in your GraphQL type defintions and get a fully featured GraphQL API with referential integrity, inverse updates, subscriptions and role based access control that can be used client side or server side.
Stars: ✭ 147 (-27.59%)
Mutual labels:  graphql, serverless, database

mongoke

Instantly serve your MongoDb database via graphql

DocsExamples

Features

  • Powerful Queries: Pagination, filtering, relation, relay-style connections built-in and generated in a bunch of seconds
  • Works with existing databases: Point it to an existing MongoDb database to instantly get a ready-to-use GraphQL API
  • Authorization via Jwt: Every collection can be protected based on jwt payload and document fields
  • Horizontally Scalable: The service is completely stateless and can be replicated on demand
  • Apollo Federation: The service can be easily glued with other graphql servers to handle writes and more complicated logic.
  • Resilient Idempotent Configuration: One YAML Configuration as the only source of truth, relations, authorization and types in one file

Quickstart:

Using Docker compose

The fastest way to try Mongoke is via docker-compose.

1. Write the configuration to describe the database schema and relations

The ObjectId scalar is already defined by default, it is converted to string when sent as json

# ./mongoke.yml
schema: |
    type User {
        _id: ObjectId
        username: String
        email: String
    }
    type BlogPost {
        _id: ObjectId
        author_id: ObjectId
        title: String
        content: String
    }

types:
    User:
        collection: users
    BlogPost:
        collection: posts

relations:
    - field: posts
      from: User
      to: BlogPost
      relation_type: to_many
      where:
          author_id: ${{ parent['_id'] }}

2. Run the mongoke image with the above configuration

To start the container mount copy paste the following content in a docker-compose.yml file, then execute docker-compose up.

# docker-compose.yml
version: '3'

services:
    mongoke:
        ports:
            - 4000:80
        image: mongoke/mongoke
        environment:
            DB_URL: mongodb://mongo/db
        volumes:
            - ./mongoke.yml:/conf.yml
    mongo:
        image: mongo

3. Query the generated service via graphql or go to http://localhost:4000/graphiql to open graphiql

{
    User(where: { username: { eq: "Mike" } }) {
        _id
        username
        email
        posts {
            nodes {
                title
            }
        }
    }

    BlogPostNodes(first: 10, after: "Post 1", cursorField: title) {
        nodes {
            title
            content
        }
        pageInfo {
            endCursor
            hasNextPage
        }
    }
}

Tutorials

Check out the /examples directory in this repo

Please help the project making new tutorials and submit a issue to list it here!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].