我从文档中知道我可以alias a field。但是我该如何别名呢?
例如我如何别名一个int或字符串类型? type MyStringType = String
可以工作吗?
我有一个signin
变异,返回了一个auth令牌,我想写一些类似的东西:
type Mutation {
signin(email: String!, password: String!): AuthToken
}
type AuthToken = String
答案 0 :(得分:0)
GraphQL不支持类型别名。
但是,您可以实现具有与现有标量相同的属性但名称不同的自定义标量。从您的问题尚不清楚您正在使用哪种语言或库,但是在GraphQL.js中,您可以执行以下操作:
const { GraphQLString, GraphQLScalarType } = require('graphql')
const AuthToken = new GraphQLScalarType({
name: 'AuthToken',
description: 'Your description here',
serialize: GraphQLString.serialize,
parseValue: GraphQLString.parseValue,
parseLiteral: GraphQLString.parseLiteral,
})
这里是add a custom scalar in Apollo Server的操作方法。请记住,这样做实际上会使客户感到困难,尤其是那些以强类型语言编写的客户。如果您不需要自定义序列化或解析行为,我会坚持使用内置标量。