IRONSOFTWAREHOME
開發者更新

GraphQL C#(對於開發者的運行原理)

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

GraphQL 以其作為替代 RESTful API 的靈活高效建構網路服務方式而受到廣泛關注。 GraphQL 有多種不同語言版本,如 Java、Python、ASP .NET core。 但在此文章中,我們將深入探討在 C# 中使用 GraphQL,探索其概念、實施和應用,並提供實際的例子。 此外,我們將使用 IronPDF for C# 配合 GraphQL 架構定義查詢類別來建立 PDF 文件。

什麼是 GraphQL?

GraphQL 是一種 API 查詢語言,使客戶端能夠精確地請求所需的資料。 與 RESTful API 不同,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 功能 而聞名,保留了所有的佈局和樣式。 它允許從網頁內容建立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 API 更靈活和高效的方法來查詢和操作資料。 它的能力使客戶端僅請求所需的型別查詢資料,使其對於性能和靈活性至關重要的現代網頁應用特別吸引人。

此外,將 GraphQL 與 IronPDF 等工具和套件結合使用,為生成動態和資料驅動的 PDF 報告開啟了一個令人興奮的可能世界。 無論您是在建立發票、生成報告、還是製作任何其他型別的文件,將 IronPDF 與 C# 中的 GraphQL 結合使用,提供了一種強大而高效的方式來自動化 PDF 生成。

總之,GraphQL 和 C# 是構建現代、靈活而高效的網頁應用的一個強大的組合。 使用 HotChocolate、GraphQL.Client 和 IronPDF 這樣的程式庫,開發者擁有了構建健壯的、資料驅動的應用程式所需的所有工具,以滿足當今數位化環境的需求。

HTML 到 PDF 的教程在以下 IronPDF 授權指南可供使用者使用。

Jacob Mellor,首席技術官 @ Team Iron
首席技術官

Jacob Mellor是Iron Software的首席技術官,一位在C# PDF技術上開創先河的遠見工程師。作為Iron Software核心程式碼庫的原開發者,他從創立以來就一直在塑造公司的產品架構,與首席執行官Cameron Rimington一起將公司轉變為服務於NASA、特斯拉和全球政府公司的50多名人員的公司。

...
閱讀更多

相關文章

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起