Comments (17)
I was looking to get started on this soon aswell (although soon is whenever i feel like playing around with it).
Mutations should probably get their own resolvers, i haven't looked to much at how they are integrated in graphql but i believe they get their own section right?
from graphql-sequelize.
@mickhansen we have a solution started on a branch of our fork. It uses two different mutation Resolvers and has a few helper functions.
from graphql-sequelize.
+1 for this. Btw... how do we handle (form) validations in that case?
from graphql-sequelize.
@xpepermint sequelize validations would still work. And i assume that mutations will be typed so you can atleast ensure correct types and non-null if needed.
from graphql-sequelize.
@mickhansen that's good.
I think that the validation part will be tricky. My forms usually depend on server-side validation error messages. I show each error message directly under form's field after validating a form (e.g. is required, is not an email). It seems to me that GraphQL expects the human validation
part (error messages for a user) to be handled by the client itself and not to rely on the server response content, which is probably better anyway. I think that the server-side errors are meant for developers only. In case of an email validation we won't get a nice structured error message but just a text message (a sentence) explaining what went wrong. Just some thoughts ... Am I correct?
from graphql-sequelize.
@xpepermint well that's really up to you, the sequelize validation output is a structure containing the rule that failed, on what value, etc.
from graphql-sequelize.
I'll run some tests on graphql error messages for validations and let you know what results we get. There is an errors object returned on all GraphQL errors, so hopefully that'll contain some information. if it doesn't by default we could look into integrating the error handling portion more closely with sequelize.
from graphql-sequelize.
@brad-decker that's great!
from graphql-sequelize.
This debate graphql/graphql-js#179 could help us here.
from graphql-sequelize.
Thanks @xpepermint - will definitely use this as resource when we dive more into mutation support.
from graphql-sequelize.
We're currently trying to figure out what is the right amount of auto generation when it comes to mutation support. Too much magic and its not clear how things are working and there's too much of an opportunity for random errors.
We're also trying to add support for graphql-relay mutations with client ids so that users will have the option to support their own custom mutations or use the mutateAndGetPayload feature of graphql-relay-js mutations
from graphql-sequelize.
Would love to see any preliminary api designs you have @brad-decker.
I was thinking perhaps just offer mutation helpers, so users define mutation skeletons but can implement helpers for CRUD stuff if need be.
from graphql-sequelize.
@mickhansen Thats what we're working our way too. We are still wrapping our minds around how we want to approach. i'll ping you here when we have a draft we're pleased with.
from graphql-sequelize.
graphql/express-graphql#12, graphql/graphql-js#44, https://github.com/mugli/learning-graphql
from graphql-sequelize.
Btw, I started with this https://github.com/xpepermint/graphql-type-factory.
from graphql-sequelize.
@brad-decker Any progress here? Getting started on mutations myself and would love to hear what experiences you might have had - Not sure it makes sense to provide that much help from this library since most mutations have a bit of logic (unless we're talking straight up create association or model instance from supplied values).
from graphql-sequelize.
Any update on this? @rpellerin created an awesome lib: https://github.com/rpellerin/graphql-sequelize-schema-generator
from graphql-sequelize.
Related Issues (20)
- Combining multiple associations HOT 5
- Problem integrating connection types and dataloader for paginated (cursor) queries HOT 1
- When using `JSONType` I get `Error: One of the provided types for building the Schema is missing a name.` HOT 2
- Can we use `attributeFields` with graphql SDL? HOT 2
- How to express two way relationship HOT 2
- Change the default name of Date scalar HOT 3
- Relay Connections with Dataloader HOT 4
- Is this working with GraphQL 15? HOT 2
- sequelize model comment => graphql field description HOT 4
- CITEXT throws an issue in the latest version HOT 7
- Unable to convert geometry to graphql type HOT 1
- Are filtering operators supported? HOT 2
- OrderBy can conflicts with Attributes HOT 1
- Passing `where:` in-place, without query variable HOT 2
- Fix order type in defaultListArgs HOT 6
- Compatibility with GraphQL v17 HOT 1
- Peer dependency support for graphql 16 HOT 2
- OrderBy doesn't pass multiple to the query HOT 1
- Changing relay edges to be nonNull causes a node error HOT 3
- Use graphql-sequelize with dataloader-sequelize HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from graphql-sequelize.