Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A Graphql API generator based on Sequelize.

NotificationsYou must be signed in to change notification settings

adamslogic/graphql-sequelize-generator

 
 

Repository files navigation

Graphql-Sequelize-Generator (GSG) is a set of tools that will allow you toeasily generate a GraphQL API from your sequelize models.

It's a very good fit for POCs and MVPs, while also scaling pretty well thanks todataloader-sequelize.


Documentation

The complete documentation car be foundhere

What can I do with GSG?

The tools provided by this library will allow you to:

  • Query any model defined in your app through GraphQL.
  • Auto-generate create/update/delete mutations.
  • Define before/after hooks and all resolvers, including the mutations.
  • Easily create custom mutations.
  • Get an integrated interface to test your GraphQL API.
  • Counts for each model can also be generated.
  • Subscriptions auto-generated for mutations.
  • Add custom fields/resolvers on auto-generated types.
  • Easy integration withdataloader-sequelize

Getting started


Setting up the dependencies and the library

Add the lib and the peer dependencies of GraphQL-Sequelize-Generator:

yarn add graphql-sequelize-generator graphql sequelize graphql-sequelize @apollo/server dataloader-sequelize graphql-relay ws

⚠️ Caution: GSG requires Node v9.11.2 or greater as it is using async/await.


Initializing the project with Sequelize-CLI and adding data to the database

If you need to initialize the project, please follow this Sequelize documentation page :Sequelize-Cli and Migrations


Setting up your server

Create a file where you will set up your server and paste the following code. We used index.js (at the root of our example project):

// index.jsconst{ expressMiddleware}=require('@apollo/server/express4')constexpress=require('express')consthttp=require('http')constcors=require('cors')constjson=require('body-parser')const{ createContext,EXPECTED_OPTIONS_KEY}=require('dataloader-sequelize')constsetupServer=require('./schema')constmodels=require('./models')//Assuming "models" is your import of the Sequelize models folder, initialized by Sequelize-CliconstcreateServer=async(options={},globalPreCallback=()=>null)=>{constapp=express()options={spdy:{plain:true},    ...options,}consthttpServer=http.createServer(options,app)const{ server}=setupServer(globalPreCallback,httpServer)awaitserver.start()//server.applyMiddleware({ app, path: '/graphql' })app.use('/graphql',cors(),json(),expressMiddleware(server,{context:async({ req, connection})=>{constcontextDataloader=createContext(models.sequelize)// Connection is provided when a webSocket is connected.if(connection){// check connection for metadatareturn{            ...connection.context,[EXPECTED_OPTIONS_KEY]:contextDataloader,}}},}))awaitnewPromise((resolve)=>{httpServer.listen(process.env.PORT||8080,()=>{resolve()})console.log(`🚀 Server ready at http://localhost:${process.env.PORT||8080}/graphql`)})returnhttpServer}constcloseServer=async(server)=>{awaitPromise.all([newPromise((resolve)=>server.close(()=>resolve()))])}createServer()

Getting started with boilerplates

You can easily start a project with graphql-sequelize-generator using these boilerplates:

About

A Graphql API generator based on Sequelize.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript71.4%
  • TypeScript28.6%

[8]ページ先頭

©2009-2025 Movatter.jp