Wenn GraphQLID anstelle von GraphQLInt verwendet werden soll?
Es ist nicht klar, wann @ verwendet werden soGraphQLID
Anstatt vonGraphQLInt
.
Betrachten Sie das folgende Schema:
type User {
id: Int!
firstName: String!
lastName: String!
}
type Query {
user (id: ID!): User
}
Im Falle vonQuery.user
, es scheint keinen Unterschied zu machen, ob man @ benutGraphQLID
oderGraphQLInt
.
Im Falle vonUser.id
mitGraphQLID
wandelt die Eingabe in einen String um. @ VerwendGraphQLInt
stellt sicher, dass die Eingabe eine Ganzzahl ist.
Dadurch wird das Abfrage- und Typensystem inkonsistent.
Das graphql-js spec sagt einfach:
A GraphQLScalarType
das steht für eine ID.
Ist dies ein Implementierungsdetail (z. B. sollte der GraphQL-ClientGraphQLID
auf eine ganze Zahl, wenn dies möglich ist), oder wird erwartet, dassID
ist immer ein String in graphql?