Description
Issue Description
Using a generic Mutation can lead to unwanted result, more specifically on data types like: Array/Relation.
Steps to reproduce
Create a new Object (with new field) and an array of Pointers
mutation {
objects {
create(
className: "SomeClass"
fields: {
relation: [
{ __type: "Pointer", className: "Country", objectId: "GFFCf5dxKW" }
]
}
) {
objectId
}
}
}
Expected Results
relation
field must be a Relation
Actual Outcome
The data type is interpreted as an Array
Environment Setup
-
Server
- parse-server version (Be specific! Don't say 'latest'.) : master
- Localhost or remote server? (AWS, Heroku, Azure, Digital Ocean, etc): localhost
-
Database
- MongoDB
Suggestion
I think that generic Mutations isn't suitable in real GraphQL app but it's useful for testing the current GraphQL feature. The generic Mutation
currently seems to be a black box and can be confusing for new developers who are not familiar with SDKs (Polygon, ACL, Pointer, etc...)
In fact, I think that in most applications that will use the Parse GraphQL
as API
, the SDKs will be used little or not at all to interact with the GraphQL
because it is not comfortable and really logical to combine a SDK
and a API GraphQL
in terms of developer experience.
We should teach developers to create first a schema with a well designed createClass
/createSchema
Mutation
and then use a specific Mutation
What do you think about this @davimacedo @omairvaiyani @douglasmuraoka ?