Mic*_*aib 5 relay graphql hotchocolate
如果使用 Relay 进行开发,可以直接使用 Hot Chocolate GraphQL 服务器打印 GraphQL SDL。有没有办法做到这一点?
schema {
query: Query
}
type Query {
sayHello: String
}
Run Code Online (Sandbox Code Playgroud)
Mic*_*aib 10
Hot Chocolate Server 提供了将模式打印为 GraphQL SDL 的简单方法。
你可以通过调用打印任何架构ToString上ISchema。
这是一种更加程序化的方法,但在测试或控制台工具中仅打印模式非常有用。很高兴知道这里的任何语法节点都允许您以这种方式打印。所以,即使你想打印一个解析过的查询,你也可以ToString通过它来获取它的 GraphQL 语言字符串表示。
对于像 Relay 这样的东西,在端点上有可用的模式来下载它是非常有用的。Hot Chocolate 服务器在所有版本中都提供了一个 GraphQL SDL 端点。
版本 10 及更早版本: http://localhost:5000/graphql/schema
版本 11 及更新版本: http://localhost:5000/graphql?sdl
在graphql路由上托管 GraphQL 端点时,此 URL 应该是有效的。
如果要在 CI/CD 中生成架构,可以添加一个 CLI 参数来生成架构但不启动应用程序。就像是:
在Program.cs中:
if (args.Any(c => c == "--generate-schema"))
{
builder.Services.AddGraphQL().InitializeOnStartup();
var app = builder.Build();
var executor = host.Services.GetRequiredService<IRequestExecutorResolver>().GetRequestExecutorAsync().Result;
var schema = executor.Schema.Print();
File.WriteAllText("schema.graphql", schema);
return;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
715 次 |
| 最近记录: |