能否不依赖Web服务器直接调用Hot Chocolate执行引擎?
直接调用Hot Chocolate执行引擎(无需Web服务器)
完全可以直接调用Hot Chocolate的执行引擎,不需要依赖HTTP服务器或通过网络请求触发查询。你可以在控制台应用、桌面程序、后台服务等任意.NET环境中直接初始化引擎并执行GraphQL查询。
实现步骤
安装必要的NuGet包
需要安装核心的Hot Chocolate包:HotChocolateHotChocolate.Execution
编写代码示例
以下是一个极简的直接调用示例:using HotChocolate; using HotChocolate.Execution; // 定义GraphQL查询类型 public class Query { public string Greet(string name = "Guest") => $"Hello, {name}!"; } // 构建Schema并创建执行器 var schema = SchemaBuilder.New() .AddQueryType<Query>() .Create(); var executor = schema.MakeExecutable(); // 要执行的GraphQL查询字符串 var query = @" query GreetQuery { greet(name: ""Hot Chocolate"") } "; // 执行查询 var result = await executor.ExecuteAsync(query); // 输出结果 if (result is IQueryResult queryResult) { Console.WriteLine(queryResult.ToJson()); }
关键说明
- 核心逻辑是通过
SchemaBuilder构建你的GraphQL Schema,再通过MakeExecutable()生成可执行的引擎实例,最后调用ExecuteAsync()直接执行查询。 - 你可以根据业务需求扩展Schema,添加Mutation、Subscription、自定义标量类型等,执行方式保持一致。
- 执行结果
IExecutionResult包含查询数据或错误信息,可通过类型判断(如IQueryResult、IErrorResult)进行针对性处理。
内容的提问来源于stack exchange,提问作者JamesL
相关产品推荐
相关产品推荐

