IRONSOFTWAREHOME
开发者更新

GraphQL C#(开发人员如何使用)

Jacob Mellor,Team Iron 的首席技术官
Jacob Mellor
Updated: 2026年4月21日

GraphQL 已成为替代 RESTful APIs 构建灵活高效网络服务的一种流行选择。 GraphQL 可用于许多不同的语言,如 Java、Python、ASP .NET core。 但在本文中,我们将深入探讨在 C# 环境中使用 GraphQL,探索其概念、实现和使用的实际示例。 同时,我们将使用 IronPDF for C# 来创建 PDF 文件,借助 GraphQL 架构定义查询类。

什么是GraphQL?

GraphQL 是 API 的查询语言,使客户端能够精确请求所需的数据。 与 RESTful APIs 不同,多个端点可能返回固定的数据结构,GraphQL 服务允许客户端指定所需数据的形状,使其更高效、更灵活。

Setting up GraphQL in C#

要在 C# 项目中使用 GraphQL,您需要 HotChocolate 库,这是一个流行的 .NET GraphQL 端点服务器实现。

首先,安装 Hot Chocolate NuGet 包:

PM > Install-Package HotChocolate.AspNetCore

创建 GraphQL 架构

GraphQL 架构定义了 API 中可用的数据类型和操作。 以下是面向博客应用程序的一种简单架构优先实现示例:

using HotChocolate.Types;

public class QueryType : ObjectType
{
    protected override void Configure(IObjectTypeDescriptor descriptor)
    {
        descriptor.Field("helloWorld")
            .Type<StringType>()
            .Resolve(context => "Hello, GraphQL!");
    }
}

在此示例中,我们定义了一个helloWorld字段,在查询时返回字符串"Hello, GraphQL!"。

创建 GraphQL 服务器

接下来,使用 ASP.NET Core 设置一个 GraphQL 服务器:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddGraphQLServer()
            .AddQueryType<QueryType>();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseRouting();
        app.UseEndpoints(endpoints =>
        {
            endpoints.MapGraphQL();
        });
    }
}

Querying GraphQL from C#

现在,让我们看看如何使用GraphQL.Client NuGet包从C#客户端查询此GraphQL API:

using GraphQL.Client.Http;
using GraphQL.Client.Serializer.Newtonsoft;
using System;
using System.Threading.Tasks;

// GraphQL query class to interact with the API
public class Query
{
    public static async Task Main()
    {
        // Set up the GraphQL client
        using var graphQLClient = new GraphQLHttpClient(new GraphQLHttpClientOptions
        {
            EndPoint = new Uri("http://localhost:5000/graphql") // GraphQL endpoint
        }, new NewtonsoftJsonSerializer());

        // Define the GraphQL query
        var request = new GraphQLRequest
        {
            Query = @"
                {
                    helloWorld
                }"
        };

        var response = await graphQLClient.SendQueryAsync<dynamic>(request);
        // Print the response from the GraphQL server
        Console.WriteLine((string)response.Data.helloWorld);
    }
}

GraphQL C# 提供了一种设计 API 的强大而灵活的方法,通过像 HotChocolate 这样的库,将 GraphQL 后端集成到您的 C# 应用程序中变得非常简单。 通过定义架构和设置服务器,您可以通过 GraphQL API 公开您的数据,并从 C# 客户端高效查询。

输出

GraphQL C#(开发者如何使用):图1 - 运行前面代码的控制台输出

Intro to IronPDF in C#

IronPDF 是一个多功能 C# 库,可轻松创建、编辑和操作 PDF 文档。 在本节中,我们将介绍 IronPDF,并演示如何结合 GraphQL 使用它生成动态 PDF 报告。

IronPDF 以其 HTML 到 PDF 的功能而闻名,能够保留所有布局和样式。 它允许从 Web 内容创建 PDF,非常适合用于报告、发票和文档。 HTML 文件、URL 和 HTML 字符串可以无缝转换为 PDF。

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

安装 IronPDF

要开始使用 IronPDF,请安装 NuGet 包:

PM > Install-Package IronPdf

使用 IronPDF 生成 GraphQL 数据 PDF

让我们创建一个 PDF 报告,该报告从我们的 GraphQL API 中获取用户数据,并以格式化方式显示。

示例

using IronPdf;
using GraphQL.Client.Http;
using GraphQL.Client.Serializer.Newtonsoft;
using System;
using System.Threading.Tasks;

public class PdfGenerator
{
    public async Task GeneratePdfAsync()
    {
        // Initialize GraphQL client
        var graphQLClient = new GraphQLHttpClient(new GraphQLHttpClientOptions
        {
            EndPoint = new Uri("http://localhost:5000/graphql")
        }, new NewtonsoftJsonSerializer());

        // Define GraphQL query
        var query = new GraphQLRequest 
        {
            Query = @"
                {
                    helloWorld
                }"
        };

        var response = await graphQLClient.SendQueryAsync<dynamic>(query);
        var helloMessage = response.Data.helloWorld.ToString();

        // Create HTML content for the PDF
        var htmlContent = $@"
            <html>
            <head><title>GraphQL Report</title></head>
            <body>
                <h1>GraphQL Report</h1>
                <p>{helloMessage}</p>
            </body>
            </html>";

        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("GraphQLReport.pdf");
    }
}

在此示例中,我们使用GraphQL客户端从GraphQL API获取helloWorld消息。 然后,我们构建一个包含此消息的HTML模板,并使用IronPDF的ChromePdfRenderer将此HTML转换为PDF文件。

输出

GraphQL C#(开发者如何使用):图2 - 从前面代码输出的PDF

结论

GraphQL 已成为 API 开发的游戏规则改变者,与传统的 RESTful APIs 相比,提供了一种更灵活和高效的方法来查询和操作数据。它能够让客户端仅请求所需的类型查询数据,这对于性能和灵活性至关重要的现代 Web 应用程序来说特别吸引人。

此外,将 GraphQL 与 IronPDF 等工具和包结合起来,为生成动态和数据驱动的 PDF 报告打开了令人兴奋的可能性。 无论您是在创建发票、生成报告还是生产其他类型的文档,将 IronPDF 与 C# 中的 GraphQL 结合在一起,提供了一种强大而高效的方式来自动化 PDF 生成。

总之,GraphQL 和 C# 是构建现代、灵活和高效 Web 应用程序的强大组合。 使用像HotChocolate、GraphQL.Client和IronPDF这样的库,开发者拥有构建强大数据驱动应用程序所需的一切工具,以满足当今数字环境的需求。

HTML 到 PDF 教程在以下 IronPDF 授权指南 中可用,供用户使用。

Jacob Mellor,Team Iron 的首席技术官
首席技术官

Jacob Mellor 是 Iron Software 的首席技术官,也是一位开创 C# PDF 技术的有远见的工程师。作为 Iron Software 核心代码库的原始开发者,他从公司成立之初就开始塑造公司的产品架构,与首席执行官 Cameron Rimington 一起将公司转变为一家拥有 50 多名员工的公司,为 NASA、特斯拉和全球政府机构提供服务。

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥。

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

OR
bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥。
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999 起