Apollofederation-errorfieldismarkedas@externalbutisnotusedbya@requires,@key,or@providesdirective
创始人
2024-09-09 09:00:50
0

当使用Apollo federation来编写serverless架构时,可能会遇到错误,表现为“field is marked as @external but is not used by a @requires, @key, or @provides directive”。这是因为在编写GraphQL schema时标记了@external,但该字段没有被任何@requires,@key或@provides指令使用。

对于这个问题,我们需要在编写GraphQL Schema时特别注意@external的使用。正确的方式是确保使用@requires,@key或@provides指令来引用该外部字段。下面是一个示例:

type Product @key(fields: "id") {
  id: ID!
  name: String!
}

type ProductAPI @extends @key(fields: "id") {
  id: ID! @external
  imageUrl: String!
}

type Query {
  product(id: ID!): Product
}

extend type Product {
  imageUrl: String @requires(fields: "id")
}

extend type Query {
  _products: [ProductAPI]
}

directive @fetch(from: String!) on FIELD

extend type ProductAPI {
  fetchImageUrl: String @fetch(from: "image_url")
}

在上面的示例中,@external修饰符被用于ProductAPI类型的id字段。在这种情况下,我们使用@requires指令来引用外部字段。同样,@key指令也被用于Product类型的id字段。

此外,我们还使用了@provides指令来指定要使用的字段。另外,我们还定义了一个自定义指令@fetch,用于从外部数据源中抓取图像URL。

通过遵循这些指导原则,我们可以避免“field is marked as @external but is not used by a @requires, @key, or @provides directive”错误。

相关内容

热门资讯

七分钟普及!老友内蒙古麻将规律... 七分钟普及!老友内蒙古麻将规律(透视)外挂透视辅助APP(2023已更新)(哔哩哔哩)1、起透看视 ...
总算了解!兴动互娱打牌,广东雀... 总算了解!兴动互娱打牌,广东雀神小程序老是输,线上教程(有挂分享);(需添加指定薇757446909...
热点推荐(Wepoke下载)软... Wepoke下载新手教程相关信息汇总(需添加指定薇757446909获取下载链接);热点推荐(Wep...
透视苹果版!wepoker透视... 透视苹果版!wepoker透视软件辅助挂(透视辅助挂)-确实是真的有挂(2025已更新);亲,这款w...
重大消息(红龙扑克发牌)外挂透... 重大消息(红龙扑克发牌)外挂透视辅助工具(辅助挂)安装教程(2021已更新)(哔哩哔哩);精心打造了...
推荐攻略!微扑克发牌规律性总结... 推荐攻略!微扑克发牌规律性总结(辅助挂)反正真的有挂2023已更新)(哔哩哔哩)是一款可以让一直输的...
1分钟实锤!胡乐麻将随意选牌软... 自定义胡乐麻将系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,不管你是想分...
分享认知!wepoker到底能... 分享认知!wepoker到底能不能透视(透视软件挂)-的确真的有挂(2024已更新);wepoker...
必备攻略!吉祥麻将让系统发好牌... 1、必备攻略!吉祥麻将让系统发好牌,广东雀神外挂真实码,靠谱教程(有挂总结);详细教程。2、吉祥麻将...
热点推荐(we-poke)软件... 热点推荐(we-poke)软件透明挂辅助机制(辅助挂)AI教程(2023已更新)(哔哩哔哩);(需添...