Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Apollo Federated Gateway在尝试使用.NET Core GraphQL联邦子图时返回错误_Node.js_Asp.net Core_Graphql_Apollo_Apollo Federation - Fatal编程技术网

Node.js Apollo Federated Gateway在尝试使用.NET Core GraphQL联邦子图时返回错误

Node.js Apollo Federated Gateway在尝试使用.NET Core GraphQL联邦子图时返回错误,node.js,asp.net-core,graphql,apollo,apollo-federation,Node.js,Asp.net Core,Graphql,Apollo,Apollo Federation,我正在努力学习阿波罗联合会,所以我先看了他们的样本()。这个示例存储库工作得很好,我可以在Node.js中添加一个新服务作为子图 我想在.NETCore中添加一个新的服务作为子图,以扩展示例项目中定义的用户类型。为此,我使用创建了一个新服务 我的模式定义如下: extend type User @key(fields: "id") { id: ID! @external phone: String } GraphQL游乐场似乎工作正常,但当我尝试在网关中包

我正在努力学习阿波罗联合会,所以我先看了他们的样本()。这个示例存储库工作得很好,我可以在Node.js中添加一个新服务作为子图

我想在.NETCore中添加一个新的服务作为子图,以扩展示例项目中定义的
用户
类型。为此,我使用创建了一个新服务

我的模式定义如下:

extend type User @key(fields: "id") {
    id: ID! @external
    phone: String
}


GraphQL游乐场似乎工作正常,但当我尝试在网关中包含该服务时,出现以下错误:
unhandledPromisejectionWarning:error:无法在加载“用户服务”的服务定义http://localhost:5000/graphql: 语法错误:应为名称,找到“}”。

显然,这是因为如果不扩展查询类型,graphql dotnet server NuGet包(当前为5.0.2)不会生成正确的SDL。服务正常启动,我可以导航到UI游乐场

查询:

query {
  _service {
    sdl
  }
}
{
  "data": {
    "_service": {
      "sdl": "type Query {\r\n\r\n}\r\n\r\nextend type User @key(fields: \"id\") {\r\n  id: ID! @external\r\n  phone: String\r\n}\r\n"
    }
  },
  "extensions": {}
}
结果(json):

query {
  _service {
    sdl
  }
}
{
  "data": {
    "_service": {
      "sdl": "type Query {\r\n\r\n}\r\n\r\nextend type User @key(fields: \"id\") {\r\n  id: ID! @external\r\n  phone: String\r\n}\r\n"
    }
  },
  "extensions": {}
}

请注意,graphql dotnet在SDL中生成一个空的
类型查询{\r\n\r\n}
部分,该部分不应该存在,因为我没有在模式中扩展查询类型。我已经在graphql dotnet github项目中打开了一个应用程序

解决方法可以是使用新功能扩展查询类型,至少在问题解决之前是这样