Неясно, когда использовать GraphQLID
вместо GraphQLInt
.
Рассмотрим следующую схему:
type User {
id: Int!
firstName: String!
lastName: String!
}
type Query {
user (id: ID!): User
}
В случае Query.user
кажется, нет никакой разницы, использовать ли GraphQLID
или GraphQLInt
.
В случае User.id
использование GraphQLID
приведет к преобразованию ввода в строку. Использование GraphQLInt
гарантирует, что ввод является целым числом.
Это делает запрос и систему типов несовместимыми.
graphql-js spec просто говорит:
GraphQLScalarType
, представляющий идентификатор.
Является ли это деталью реализации (например, должен ли клиент GraphQL преобразовывать GraphQLID
в целое число, когда это возможно), или ожидается, что ID
всегда будет строкой в graphql?