All Projects → graphitejs → Server

graphitejs / Server

Licence: mit
Framework NodeJS for GraphQl

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Server

Grial
A Node.js framework for creating GraphQL API servers easily and without a lot of boilerplate.
Stars: ✭ 194 (+64.41%)
Mutual labels:  graphql, graphql-server, framework
Api Platform
Create REST and GraphQL APIs, scaffold Jamstack webapps, stream changes in real-time.
Stars: ✭ 7,144 (+5954.24%)
Mutual labels:  graphql, graphql-server, framework
Spikenail
A GraphQL Framework for Node.js
Stars: ✭ 358 (+203.39%)
Mutual labels:  graphql, graphql-server, framework
Turbulette
😴 Turbulette - A batteries-included framework to build high performance, fully async GraphQL APIs
Stars: ✭ 29 (-75.42%)
Mutual labels:  graphql, graphql-server, framework
Framework
.NET Core Extensions and Helper NuGet packages.
Stars: ✭ 399 (+238.14%)
Mutual labels:  graphql, graphql-server, framework
Orionjs
A new framework for serverside GraphQL apps
Stars: ✭ 35 (-70.34%)
Mutual labels:  graphql, graphql-server, framework
Daptin
Daptin - Backend As A Service - GraphQL/JSON-API Headless CMS
Stars: ✭ 1,195 (+912.71%)
Mutual labels:  graphql, graphql-server
Graphql Transform Schema
Transform, filter & alias resolvers of a GraphQL schema
Stars: ✭ 84 (-28.81%)
Mutual labels:  graphql, graphql-server
Ariadne
Ariadne is a Python library for implementing GraphQL servers using schema-first approach.
Stars: ✭ 1,274 (+979.66%)
Mutual labels:  graphql, graphql-server
Dahlia
An opinionated React Framework. [Rename to pea.js]
Stars: ✭ 92 (-22.03%)
Mutual labels:  graphql, framework
Locksmith
Want to use GraphQL with Clojure/script but don't want keBab or snake_keys everywhere? Use locksmith to change all the keys!
Stars: ✭ 59 (-50%)
Mutual labels:  graphql, graphql-server
Qlkube
A GraphQL api for Kubernetes
Stars: ✭ 89 (-24.58%)
Mutual labels:  graphql, graphql-server
Graphql Log
Add logging to your GraphQL resolvers so you know what's going on in your app.
Stars: ✭ 94 (-20.34%)
Mutual labels:  graphql, graphql-server
Apollo Server Vercel
⚫ Production-ready Node.js GraphQL server for Vercel Serverless Functions
Stars: ✭ 69 (-41.53%)
Mutual labels:  graphql, graphql-server
App
Reusable framework for micro services & command line tools
Stars: ✭ 66 (-44.07%)
Mutual labels:  graphql, framework
Graphjin
GraphJin - Build APIs in 5 minutes with GraphQL. An instant GraphQL to SQL compiler.
Stars: ✭ 1,264 (+971.19%)
Mutual labels:  graphql, graphql-server
Best Of Web Python
🏆 A ranked list of awesome python libraries for web development. Updated weekly.
Stars: ✭ 1,118 (+847.46%)
Mutual labels:  graphql, framework
Uvicorn Gunicorn Starlette Docker
Docker image with Uvicorn managed by Gunicorn for high-performance Starlette web applications in Python 3.7 and 3.6 with performance auto-tuning. Optionally with Alpine Linux.
Stars: ✭ 92 (-22.03%)
Mutual labels:  graphql, framework
Formql
FormQL - A framework for building dynamic forms in Angular
Stars: ✭ 110 (-6.78%)
Mutual labels:  graphql, framework
Firebase Functions Graphql Example
GraphQL server running on Cloud Functions for Firebase
Stars: ✭ 107 (-9.32%)
Mutual labels:  graphql, graphql-server

GraphiteJS

Framework NodeJS for GraphQl

graphitejs TravisCI Status Codecov Status semantic-release npm latest version


GraphiteJS is a NODE.JS Framework for building GraphQL schemas/types fast, easily and with scalability.

  • Easy to use: GraphiteJS make easy GraphQL in NodeJS without effort.
  • Any Front: GraphiteJS support any front library.
  • Data agnostic: GraphiteJS supports any kind of data source.

Guide


Install

npm i @graphite/server --save

yarn add @graphite/server

on your index file:

import { Graphite } from '@graphite/server'

main = async () => {
  const graphite = await Graphite()
}

main()

and that's all, you have running the graphqli tool on the port 4000 by default.

How to use

After install @graphite/server you have to create your first model. We recommend creating a folder called models and follow the pattern matching the filename with the Type name.

Types

import { GraphQL } from '@graphite/server'

export const Developer = GraphQL('Developer')({
   // the value always have to be an array first arg is the type, the second arg is an optional comment
  name: ['String!', 'Your name is required'],
  age: ['Int'],
  isGreatDeveloper: ['Boolean']
})

So, now you need to pass this model to the Graphite Server

on index.js

import { Graphite } from '@graphite/server'
import { Developer } from './models/Developer'

main = async () => {
  await Graphite({ models: [Developer] })
}

main()

Queries

import { GraphQL } from '@graphite/server'

export const Developer = GraphQL('Developer')({
  name: ['String!', 'Your name is required'],
  age: ['Int'],
  isGreatDeveloper: ['Boolean'],

  Query: {
    'developer: Developer': () => ({ name: 'Your name' }),
    'developers: [Developer]': () => ([{ name: 'Your name' }]),
  }
})

Mutations

import { GraphQL } from '@graphite/server'

export const Developer = GraphQL('Developer')({
  name: ['String!', 'Your name is required'],

  Mutation: {
    'createDeveloper(name: String): Developer': (_, { name, }) => ({ name }),
    'updateDeveloper(id: ID!, name: String): Developer': (_, { name }) => ({ name }),
    'removeDeveloper(id: ID!): Developer': (_, { name }) => ({ name }),
  },
})

Subscriptions

import { GraphQL, PubSub } from '@graphite/server'

const pubsub = new PubSub()
const DEVELOPER_ADDED = 'DEVELOPER_ADDED'

export const Developer = GraphQL('Developer')({
  name: ['String!', 'Your name is required'],

  Mutation: {
    'createDeveloper(name: String): Developer': (_, { name, }) => { 
      pubsub.publish(DEVELOPER_ADDED, { developerAdded: { name } })
      return { name }
    },
  },

  Subscription: {
    'developerAdded: Developer': {
      subscribe: () => pubsub.asyncIterator([DEVELOPER_ADDED]),
    },
  },
})

Relations

  // models/Repository.js
  const Repository = GraphQL('Repository')({
      name: ['String'],
      url: ['String'],
  })

  // models/GithubProfile.js
  const GithubProfile = GraphQL('GithubProfile')({
      url: ['String'],
  })

  // models/Developer.js
  const Developer = GraphQL('Developer')({
    name: ['String'],

    'respositories: [Repository]': () => [{ name: 'GraphiteJS', url: 'https://github.com/graphitejs/graphitejs' }],

    'githubProfile: GithubProfile': () => ({ url: 'https://github.com/wzalazar' }),

    Query: {
      'developer: Developer': () => ({ name: 'Walter Zalazar' }),
    },
  })

So, now you need to pass this model to the Graphite Server

on index.js

import { Graphite } from '@graphite/server'
import { Developer } from './models/Developer'
import { Repository } from './models/Repository'
import { GithubProfile } from './models/GithubProfile'

main = async () => {
  await Graphite({ models: [Developer, Repository, GithubProfile] })
}

main()

Contributing

Please see our contributing.md

  • Clone this repository.
  • Install dependencies.
npm install

  • Feel free for pull request.

Team

Creator

Walter Zalazar
Walter Zalazar
@wzalazar
🐦 @wzalazar_

Core members

Walter Zalazar Jose Casella
Walter Zalazar José Luis Casella
@wzalazar @jl-casella
🐦@wzalazar_ @jl-casella

License

MIT

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].