GraphQL-未知指令“唯一”

时间:2018-10-15 13:00:12

标签: graphql graphql-js

我刚刚将GraphQL从0.13.2版本更新到了14.0.2。启动服务器时,出现错误消息:library(dplyr) df %>% inner_join(vertices, by = c(from = 'label')) %>% inner_join(vertices, by = c(to = 'label')) %>% select_at(vars(matches('.x|.y'))) # id.x id.y # 1 3 1 # 2 1 2 # 3 1 3 # 4 2 3 # 5 3 3 。这是我的架构:

Error: Unknown directive "unique"

请注意,即使我使用的是const { gql } = require('apollo-server') // type Query is the root query exports.typeDefs = gql` type User { username: String! @unique password: String! } type Query { getAllUsers: User } 中的gql,它也是在后台使用GraphQL。

您可以看到导致问题的原因是我已经做到了,因此用户名必须唯一。 GraphQL的更新版本不能再具有此指令。果然,删除apollo-server可解决此问题。我仍然希望用户名唯一。我读过您可以创建自定义指令。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

在将完全自定义指令(将graphql-tools升级到v14)中使用完全自定义指令时,遇到了与您类似的情况,该指令在架构中需要定义。您可以按字段,对象,突变指定指令的工作位置。

Map

要在现场进行此类工作

directive @requireAuth on FIELD_DEFINITION

我的扩展SchemaDirectiveVisitor的类是这样的

extend type Query {
  me: String! @requireAuth
  user(userId: ID!):User!    
  users: [User]!  
}

在提供的链接中,存在可用的方法,以便在字段,对象,标量等级别使用自定义逻辑。希望这可以帮助。

Schema Directive Visitor