IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

GraphQL C# (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

GraphQL, esnek ve verimli web hizmetleri oluşturmak için RESTful API'lere bir alternatif olarak önemli bir popülerlik kazanmıştır. GraphQL, Java, Python, ASP .NET core gibi birçok farklı dilde mevcuttur. Bununla birlikte, bu makalede C# bağlamında GraphQL kullanımına derinlemesine bakacağız, kavramlarını, uygulanmasını ve pratik örneklerle kullanımını inceleyeceğiz. Ayrıca, PDF dosyaları oluşturmak için GraphQL şema tanımı sorgu sınıfının yardımıyla C# için IronPDF kullanacağız.

GraphQL Nedir?

GraphQL, istemcilerin tam olarak ihtiyaç duydukları verileri istemelerine olanak tanıyan bir API sorgu dilidir. RESTful API'lerin birden fazla uç noktasının sabit veri yapıları döndürebileceği durumun aksine, GraphQL servisleri, istemcilerin ihtiyaç duydukları verilerin biçimini belirlemelerine olanak tanır, bu da onu daha verimli ve esnek hale getirir.

Setting up GraphQL in C#

C# projesinde GraphQL kullanmak için, .NET için popüler bir GraphQL uç nokta sunucu uygulaması olan HotChocolate kütüphanesine ihtiyacınız olacaktır.

Öncelikle, Hot Chocolate NuGet paketini yükleyin:

PM > Install-Package HotChocolate.AspNetCore

Bir GraphQL Şeması Oluşturma

Bir GraphQL şeması, API'nizde kullanılabilir veri türlerini ve işlemleri tanımlar. İşte blog uygulaması için şema-öncelikli uygulamanın basit bir örneği:

using HotChocolate.Types;

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

Bu örnekte, sorgulandığında "Merhaba, GraphQL!" dizesini döndüren bir helloWorld alanı tanımlarız.

GraphQL Sunucusu Oluşturma

Sonraki adımda, ASP.NET Core kullanarak bir GraphQL sunucusu kurun:

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#

Şimdi, GraphQL.Client NuGet paketini kullanarak C# istemcisinden bu GraphQL API'sini nasıl sorgulayacağımızı görelim:

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'leri tasarlamak için güçlü ve esnek bir yol sunar ve HotChocolate gibi kütüphanelerle, GraphQL backend'i C# uygulamalarınıza entegre etmek kolaylaşır. Bir şema tanımlayarak ve bir sunucu kurarak, verilerinizi bir GraphQL API aracılığıyla ortaya koyabilir ve C# istemcilerinden verimli bir şekilde sorgulayabilirsiniz.

Çıktı

GraphQL C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Önceki kodun çalıştırılmasından alınan konsol çıktısı

Intro to IronPDF in C#

IronPDF, PDF belgelerini kolayca oluşturmanıza, düzenlemenize ve işlemenize olanak tanıyan çok yönlü bir C# kütüphanesidir. Bu bölümde, IronPDF'i tanıtacağız ve GraphQL ile birlikte dinamik PDF raporları oluşturmak için nasıl kullanılacağını göstereceğiz.

IronPDF, tüm düzenleri ve stilleri koruyarak HTML'den PDF'ye dönüştürme işlevi ile mükemmelleşir. Web içeriğinden PDF oluşturulmasına olanak tanır, raporlar, faturalar ve dokümantasyon için mükemmeldir. HTML dosyaları, URL'ler ve HTML dizeleri sorunsuz bir şekilde PDF'lere dönüştürülebilir.

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");
    }
}

Installing IronPDF

IronPDF ile başlamanız için NuGet paketini yükleyin:

PM > Install-Package IronPdf

IronPDF Kullanarak GraphQL Verileriyle PDF Oluşturma

GraphQL API'mizden kullanıcı verilerini alıp biçimlendirilmiş bir şekilde gösteren bir PDF raporu oluşturalım.

Örnek

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");
    }
}

Bu örnekte, GraphQL istemcisini kullanarak GraphQL API'mizden helloWorld mesajını almak için kullanıyoruz. Daha sonra, bu mesajı içeren bir HTML şablonu oluşturur ve IronPDF'nin ChromePdfRenderer kullanarak bu HTML'yi bir PDF dosyasına dönüştürürüz.

Çıktı

GraphQL C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Önceki kodun çıktısı olan PDF dosyası

Sonuç

GraphQL, API geliştirmede devrim yaratarak, geleneksel RESTful API'lere kıyasla veri sorgulama ve manipülasyonu için daha esnek ve verimli bir yol sunmaktadır. İstemcilerin sadece ihtiyaç duydukları türde sorgu verilerini istemelerine izin vermesi, özellikle performans ve esnekliğin ön planda olduğu modern web uygulamaları için çekici kılmaktadır.

Ayrıca, GraphQL'i IronPDF gibi araçlar ve paketlerle birleştirmek, dinamik ve veri odaklı PDF raporları oluşturma konusunda heyecan verici imkanlar sunar. Fatura oluşturuyor, rapor üretiyor veya başka türden belgeler hazırlıyorsanız, IronPDF ile C#'da GraphQL entegrasyonu, PDF oluşturmayı otomatikleştirmek için güçlü ve verimli bir yol sağlar.

Özetle, GraphQL ve C#, modern, esnek ve verimli web uygulamaları inşa etmek için güçlü bir kombinasyon oluşturur. HotChocolate gibi kütüphaneler, GraphQL.Client ve IronPDF ile, geliştiriciler günümüzün dijital dünyasının taleplerini karşılayan sağlam, veri odaklı uygulamalar oluşturmak için ihtiyaç duydukları tüm araçlara sahiptirler.

IronPDF Lisans Kılavuzu'nda kullanıcılar için HTML'den PDF'ye dönüştürme eğitimi bulunmaktadır.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez