Altbilgi içeriğine atla
.NET YARDıM

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

C# içinde Refit ile IronPDF entegre ederek inanılmaz etkili uygulamalar üretmek için iki güçlü kütüphanenin en iyi özellikleri birleştirilir. Refit, geliştiricilerin C# özellikleri ile API arayüzleri tasarlamasına, HTTP isteklerini otomatik olarak üretmesine ve tür güvenli API erişimi sağlamasına olanak tanıyarak RESTful API'leri kullanmayı kolaylaştırır. Diğer taraftan, IronPDF, HTML içeriğini dönüştürmekle birlikte PDF dosyalarını birleştirme ve anotasyon gibi güçlü yetenekler sunar. Bu kütüphaneler birleştirildiğinde, veri sunumu ve geri alımı için sorunsuz iş akışları sağlar. Refit gibi araçlar veri almak için bir API'den faydalanırken, IronPDF bu veriye dayanarak kapsamlı, yüksek kaliteli PDF raporları üretmek için kullanılabilir, veri odaklı uygulama geliştirme daha verimli ve üretken hale getirilebilir.

Refit C# nedir?

Refit, RESTful API'lere HTTP istekleri göndermeyi kolaylaştıran, beyan edici, tür güvenli bir metodoloji kullanan .NET için açık kaynaklı bir çerçevedir. Refit, C# arayüzleri API uç noktaları olarak özelliklerle süslenmiş belirterek gerekli HTTP istemci kodunu otomatik olarak üretir. Bu, kodun okunabilirliğini artırır ve şablon kodunu büyük ölçüde azaltır. Bu teknik, API uç noktaları ile metod imzalarının doğru şekilde eşleşmesini garanti ederek hataları derleme aşamasında tespit eder.

Ek olarak, Refit JSON serileştirme ve serileştirmeden çıkarma işlemlerini sorunsuz bir şekilde halleder, böylece geliştiricilerin doğrudan C# nesneleri ile etkileşime girmesini sağlar, manuel olarak API yanıtlarını dönüştürmeye gerek kalmaz. Ayrıca, HTTP yöntemleri, başlıklar ve parametreler doğrudan arayüz tanımlarında belirtilerek, özellikler konfigürasyonu daha basit hale getirir. API uç noktaları güncellendiğinde istemci kodunun daha az değiştirilmesi gerektiği için kod daha basit ve daha kolay bakımı yapılabilir hale gelir.

Örneğin, Refit, bir kullanıcının adını almak için gerekli olan HTTP GET isteğini, bir [Get("/users/{id}")] özelliğiyle bir arayüzde bir metod oluşturarak üretebilir. Bu istek daha sonra tür güvenli bir yöntem çağrısıyla yapılabilir. Refit, HTTP istemcilerini yönetmeyle ilgili zorlukları soyutlayarak geliştiriciler için .NET uygulamalarına API'leri entegre etmenin daha verimli bir çözümüdür.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - Refit: .NET Core, Xamarin ve .NET için otomatik tür güvenli REST kütüphanesi

Refit C#'ın Özellikleri

Tür Güvenli API Kullanılabilirliği

Refit hataları derleme zamanında algılar ve metod imzalarının API uç noktaları ile uyuşmasını sağlar. Uç noktaların eşleşmemesinden veya yanlış istek ayarlarından kaynaklanan çalışma zamanı hatalarının olasılığı, bu tür güvenliği ile azaltılır.

HTTP İstemci Beyana Dayalı

Geliştiriciler, C# arayüzlerini ve özelliklerini kullanarak API uç noktaları oluşturabilir, bu da daha temiz ve daha bakımı kolay HTTP istek kodu ile sonuçlanır. Bu beyan yöntem, her istemci için bir HTTP istek yönteminin uygulanmasının karmaşıklığını soyutlar.

Otomatik Serileştirme ve Serileştirmeden Çıkarma

Refit, C# nesnelerinin otomatik olarak JSON verilerine dönüştürülmesini sağlar. Artık geliştiricilerin istek gövdelerini manüel olarak serileştirmeleri veya yanıtları serileştirmeden çıkarmaları gerekmediği için veri işleme çok daha basittir.

Özelliklere Dayalı Yapılandırma

HTTP yöntemleri (GET, POST, PUT ve DELETE gibi) ve parametreleri tanımlamak için özellikler kullanılır. Bu, başlıklar, istek gövdesi, içerik, yol parametreleri ve sorgu parametrelerini içermesi nedeniyle yapılandırmayı basit ve kolay anlaşılan hale getirir.

Asenkron Programlama Desteği

Refit, asenkron HTTP isteklerini yönetmek için Görev tabanlı yöntemler kullanır ve .NET'teki asenkron programlama modelleriyle kolayca etkileşim kuracak şekilde tasarlanmıştır.

Uygun Web Tarayıcıları

Geliştiriciler, varsayılan başlık ayarlarını, zaman aşımı sayıları ve günlüğe kaydetme, kimlik doğrulama ve yeniden deneme politikaları için mesaj işleyici yapılandırmalarını değiştirerek çekirdek HTTP istemcisini kişiselleştirebilir.

Entegre Hata Yönetimi

Refit, HTTP sorunlarını yönetmek için yerleşik yeteneklere sahiptir ve geliştiricilerin kendi özel hata yönetimi mantıklarını entegre etmelerini kolaylaştırır.

Uyarlanabilirlik

Refit'in özel serileştirme ve serileştirmeden çıkarma dönüştürücüler için desteğiyle, geliştiriciler birden fazla formatı kullanabilir veya sıra dışı veri türlerini işleyebilir.

Bağımlılık Enjeksiyonu Entegrasyonu ile Birleşebilirlik

Refit, bağımlılık enjeksiyonu (DI) için önerilen uygulamalara uygun modern .NET uygulamaları için mükemmel bir uyum sağlar, çünkü DI uygulamalarına kolayca entegre edilebilir.

Doğrulama ile İlgili Yardım

Refit, API çağrılarını güvence altına almak için kimlik doğrulama başlıklarını, ayırt edici göstergeler gibi arayüz yöntemlerini ve temel kimlik doğrulamasını yapılandırmayı kolaylaştırır.

Refit C# Oluşturma ve Yapılandırma

Aşağıdaki adımlar, C# içinde bir Refit istemcisini oluşturmak ve ayarlamak için kullanılabilir:

Yeni Bir Visual Studio Projesi Oluşturma

Visual Studio'yu kullanarak Basit bir Konsol projesi oluşturmak kolaydır. Visual Studio'da bir Konsol Uygulaması oluşturmak için bu adımları izleyin:

Visual Studio'yu kullanmadan önce bilgisayarınıza yüklü olup olmadığını doğrulayın.

Yeni Bir Proje Başlat

Visual Studio'yu açın, "Yeni bir proje oluştur" seçeneğine tıklayın.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - Visual Studio'da, 'Yeni bir proje oluştur' seçeneğine tıklayın ve Console App'i seçin.

"Yeni bir proje oluştur" kutusunun sol tarafındaki seçimden tercih ettiğiniz programlama dilini seçin (örneğin, C#).

Bir sonraki proje şablonu başvuru listesinden "Konsol Uygulaması" veya "Konsol Uygulaması (.NET Core)" şablonunu seçebilirsiniz.

Projenize bir isim verin ve projenin saklanacağı yeri seçin.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Proje adı, konum ve Çözüm Adını belirterek Konsol Uygulamanızı yapılandırın. Ardından Sonraki'ye tıklayın.

Uygun .NET Framework'ünü seçin. Ardından Konsol uygulaması projesini oluşturmak için "Oluştur" üzerine tıklayın.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - .NET Framework'ünü seçin, ardından Oluştur üzerine tıklayın. Konsol Uygulamanız başarılı bir şekilde oluşturulacaktır.

Refit'i Yükle

Öncelikle Refit kütüphanesi projenize dahil edilmelidir. Bu işlemi gerçekleştirmek için Refit NuGet Paketini NuGet Paket Yöneticisi kullanarak yükleyebilir veya Visual Studio'da .NET CLI'yi kullanabilirsiniz.

Kurulum için .NET CLI'yi kullanma:

dotnet add package Refit
dotnet add package Refit
SHELL

API Arayüzü Tanımla

API'nizi simgelemek için bir arayüz oluşturun. HTTP yöntemlerini ve uç noktaları tanımlamak için Refit özelliklerini kullanın.

using Refit;
using System.Threading.Tasks;

// Define the API interface
public interface IMyApi
{
    // Get user details by ID
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);

    // Create a new user
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}

// Define the User class
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}
using Refit;
using System.Threading.Tasks;

// Define the API interface
public interface IMyApi
{
    // Get user details by ID
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);

    // Create a new user
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}

// Define the User class
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}
Imports Refit
Imports System.Threading.Tasks

' Define the API interface
Public Interface IMyApi
	' Get user details by ID
	<[Get]("/users/{id}")>
	Function GetUserAsync(ByVal id As Integer) As Task(Of User)

	' Create a new user
	<Post("/users")>
	Function CreateUserAsync(<Body> ByVal user As User) As Task(Of User)
End Interface

' Define the User class
Public Class User
	Public Property Id() As Integer
	Public Property Name() As String
	' Other properties...
End Class
$vbLabelText   $csharpLabel

Refit İstemcisini Oluştur ve Ayarla

Refit istemcisini başlatın ve gerektiği şekilde ayarlarını yapın. Bu, uygulamanızdaki ana kodunuzda ya da bir hizmette doğrudan uygulanabilir.

using Refit;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");

        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
using Refit;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");

        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
Imports Refit
Imports System
Imports System.Threading.Tasks

Public Class Program
	Public Shared Async Function Main(ByVal args() As String) As Task
		' Define the base URL of your API
		Dim apiClient = RestService.For(Of IMyApi)("https://api.example.com")

		' Use the API client to make requests
		Dim user = Await apiClient.GetUserAsync(1)
		Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}")

		' Create a new user
		Dim newUser = New User With {.Name = "John Doe"}
		Dim createdUser = Await apiClient.CreateUserAsync(newUser)
		Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}")
	End Function
End Class
$vbLabelText   $csharpLabel

Gelişmiş Yapılandırma

Temel HttpClient'ı ayarlayarak Refit istemcisini daha fazla kişiselleştirebilirsiniz. Mesela, zaman aşımını ayarlayabilir, başlıklar özelliğini uygulayabilir, varsayılan başlıklar ekleyebilir veya yeniden deneme politikaları, kimlik doğrulama ve günlüğe kaydetme için mesaj işleyicileri kullanabilirsiniz.

using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Configure HttpClient with custom handler and timeout
        var httpClient = new HttpClient(new HttpClientHandler
        {
            // Customize the HttpClientHandler as needed
        })
        {
            BaseAddress = new Uri("https://api.example.com"),
            Timeout = TimeSpan.FromSeconds(30)
        };

        // Add default headers if needed
        httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");

        // Create the Refit API client
        var apiClient = RestService.For<IMyApi>(httpClient);

        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Configure HttpClient with custom handler and timeout
        var httpClient = new HttpClient(new HttpClientHandler
        {
            // Customize the HttpClientHandler as needed
        })
        {
            BaseAddress = new Uri("https://api.example.com"),
            Timeout = TimeSpan.FromSeconds(30)
        };

        // Add default headers if needed
        httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE");

        // Create the Refit API client
        var apiClient = RestService.For<IMyApi>(httpClient);

        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

        // Create a new user
        var newUser = new User { Name = "John Doe" };
        var createdUser = await apiClient.CreateUserAsync(newUser);
        Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
    }
}
Imports System.Net.Http
Imports Refit
Imports System
Imports System.Threading.Tasks

Public Class Program
	Public Shared Async Function Main(ByVal args() As String) As Task
		' Configure HttpClient with custom handler and timeout
		Dim httpClient As New HttpClient(New HttpClientHandler ) With {
			.BaseAddress = New Uri("https://api.example.com"),
			.Timeout = TimeSpan.FromSeconds(30)
		}

		' Add default headers if needed
		httpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_TOKEN_HERE")

		' Create the Refit API client
		Dim apiClient = RestService.For(Of IMyApi)(httpClient)

		' Use the API client to make requests
		Dim user = Await apiClient.GetUserAsync(1)
		Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}")

		' Create a new user
		Dim newUser = New User With {.Name = "John Doe"}
		Dim createdUser = Await apiClient.CreateUserAsync(newUser)
		Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}")
	End Function
End Class
$vbLabelText   $csharpLabel

C#'da bir Refit istemcisi oluşturarak ve yapılandırarak tür güvenli ve bakımı kolay RESTful API tüketimini kullanabilirsiniz.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - Konsol Çıktısı

Başlarken

Her iki kütüphaneyi de yüklemek, Refit kullanarak veri almak için basit bir API istemcisi yapılandırmak ve bu verilere dayanarak bir PDF oluşturmak için IronPDF'i kullanmak, bir C# projesinde Refit ve IronPDF'i entegre etmenin ilk adımlarıdır. Bu işlemin nasıl gerçekleşeceğini gösteren adımlar şunlardır:

IronPDF Nedir?

Özellik açısından zengin bir kütüphane olan IronPDF, .NET uygulamalarında PDF dokümanlarını yönetmek için kullanılır. Kapsamlı özellik seti sayesinde, kullanıcılar sıfırdan veya HTML içeriklerinden PDF oluşturabilir, mevcut PDF dokümanlarını parça ekleyerek, silerek veya değiştirerek değiştirebilir. IronPDF, geliştiricilere PDF dosyalarını oluşturmak, değiştirmek ve dönüştürmek için güçlü bir API sunar ve bu, .NET uygulamalarında PDF'lerle çalışmayı kolaylaştırır.

HTML'den PDF'ye dönüştürmede IronPDF, özgün düzenlerin ve tarzların hassas korunmasını sağlamakta üstünlük sağlar. Web tabanlı içeriklerden, örneğin raporlar, faturalar ve belgeler gibi PDF'ler oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri desteği ile IronPDF kolaylıkla yüksek kaliteli PDF belgeler üretir.

using IronPdf;

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

        // 1. 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");

        // 2. 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");

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

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

        // 1. 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");

        // 2. 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");

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

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

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

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

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - IronPDF for .NET: C# PDF Kütüphanesi

IronPDF'in Temel Özellikleri

HTML'den PDF'ye Dönüştürme

IronPDF, HTML içeriğini, CSS ve JavaScript dahil, kullanarak yüksek kaliteli PDF dokümanları oluşturmanızı sağlar. Bu işlev, dinamik içeriklerden veya web sayfalarından PDF oluşturmak için çok yararlıdır.

PDF'leri Düzenleme ve Manipüle Etme

IronPDF, zaten var olan PDF dokümanları için değiştirme araçları sunar. Bir PDF'den sayfalar çıkartmak, metin, resim, filigran veya not eklemek ve birkaç PDF'yi bir doküman haline getirmek mümkündür.

Sıfırdan PDF Oluşturmak

IronPDF'nin API'si ile, yeni PDF dokümanlarına programlı olarak metin, resim, şekil ve diğer nesneler ekleyebilirsiniz. Bu, dinamik olarak PDF faturaları, raporları ve diğer doküman tabanlı çıktıları üretmeyi mümkün kılar.

PDF Güvenliği

IronPDF kullanarak PDF dokümanlarını şifreleyerek ve parola güvenliği ekleyerek erişim yönetimi yapabilir ve kritik verileri koruyabilirsiniz.

PDF Formlarında

Kullanıcılar, IronPDF ile PDF formları oluşturarak ve doldurarak form alanlarına veri koyarak PDF dokümanları ile etkileşime girebilir.

Metin Çıkartma

IronPDF, PDF dokümanlarından metin içeriği çıkartarak metin verilerini kolayca arama, analiz etme ve manipüle etmeyi sağlar.

Resim Formatlarına Dönüştürme

IronPDF, PDF yerine resim gereken durumlar için uygundur, çünkü PDF dokümanlarını PNG, JPEG ve BMP gibi yaygın resim formatlarına dönüştürebilir.

IronPDF Yükleyin

.NET CLI veya NuGet Paket Yöneticisini kullanarak IronPDF'yi .NET projelerinize ekleyin.

dotnet add package IronPdf
dotnet add package IronPdf
SHELL

IronPDF'yi Refit C# ile Entegre Etme

Refit ile IronPDF'yi birleştiren bir C# kod örnegini inceleyelim. Bu örnekte, Refit'i kullanarak hayali bir RESTful API'den veri alacagiz ve bu verilere dayali olarak IronPDF ile bir PDF dokümani oluşturacagiz. Şu kodun çalışma plasmanı şöyledir:

using System;
using System.Threading.Tasks;
using IronPdf;
using Refit;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");

        try
        {
            // Use the API client to make requests
            var user = await apiClient.GetUserAsync(1);

            // Generate PDF with the retrieved user data
            GeneratePdf(user);
            Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

            // Create a new user
            var rand = new Random();
            var newUser = new User { Id = rand.Next(), Name = "John Doe" };
            var createdUser = await apiClient.CreateUserAsync(newUser);
            Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }

    // Generate a PDF from user data
    public static void GeneratePdf(User user)
    {
        // Construct HTML content for the PDF
        var htmlContent = $@"
        <html>
            <head>
                <style>
                    body {{ font-family: Arial, sans-serif; }}
                    h1 {{ color: navy; }}
                    p {{ font-size: 14px; }}
                </style>
            </head>
            <body>
                <h1>User Details</h1>
                <p><strong>ID:</strong> {user.Id}</p>
                <p><strong>Name:</strong> {user.Name}</p>
            </body>
        </html>";

        // Create an IronPDF ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF to a file
        var filePath = "UserDetails.pdf";
        pdfDocument.SaveAs(filePath);
        Console.WriteLine($"PDF generated and saved to {filePath}");
    }
}
using System;
using System.Threading.Tasks;
using IronPdf;
using Refit;

public class Program
{
    public static async Task Main(string[] args)
    {
        // Define the base URL of your API
        var apiClient = RestService.For<IMyApi>("https://api.example.com");

        try
        {
            // Use the API client to make requests
            var user = await apiClient.GetUserAsync(1);

            // Generate PDF with the retrieved user data
            GeneratePdf(user);
            Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");

            // Create a new user
            var rand = new Random();
            var newUser = new User { Id = rand.Next(), Name = "John Doe" };
            var createdUser = await apiClient.CreateUserAsync(newUser);
            Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }

    // Generate a PDF from user data
    public static void GeneratePdf(User user)
    {
        // Construct HTML content for the PDF
        var htmlContent = $@"
        <html>
            <head>
                <style>
                    body {{ font-family: Arial, sans-serif; }}
                    h1 {{ color: navy; }}
                    p {{ font-size: 14px; }}
                </style>
            </head>
            <body>
                <h1>User Details</h1>
                <p><strong>ID:</strong> {user.Id}</p>
                <p><strong>Name:</strong> {user.Name}</p>
            </body>
        </html>";

        // Create an IronPDF ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);

        // Save the PDF to a file
        var filePath = "UserDetails.pdf";
        pdfDocument.SaveAs(filePath);
        Console.WriteLine($"PDF generated and saved to {filePath}");
    }
}
Imports System
Imports System.Threading.Tasks
Imports IronPdf
Imports Refit

Public Class Program
	Public Shared Async Function Main(ByVal args() As String) As Task
		' Define the base URL of your API
		Dim apiClient = RestService.For(Of IMyApi)("https://api.example.com")

		Try
			' Use the API client to make requests
			Dim user = Await apiClient.GetUserAsync(1)

			' Generate PDF with the retrieved user data
			GeneratePdf(user)
			Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}")

			' Create a new user
			Dim rand = New Random()
			Dim newUser = New User With {
				.Id = rand.Next(),
				.Name = "John Doe"
			}
			Dim createdUser = Await apiClient.CreateUserAsync(newUser)
			Console.WriteLine($"Created User ID: {createdUser.Id}, Name: {createdUser.Name}")
		Catch ex As Exception
			Console.WriteLine($"Error: {ex.Message}")
		End Try
	End Function

	' Generate a PDF from user data
	Public Shared Sub GeneratePdf(ByVal user As User)
		' Construct HTML content for the PDF
		Dim htmlContent = $"
        <html>
            <head>
                <style>
                    body {{ font-family: Arial, sans-serif; }}
                    h1 {{ color: navy; }}
                    p {{ font-size: 14px; }}
                </style>
            </head>
            <body>
                <h1>User Details</h1>
                <p><strong>ID:</strong> {user.Id}</p>
                <p><strong>Name:</strong> {user.Name}</p>
            </body>
        </html>"

		' Create an IronPDF ChromePdfRenderer instance
		Dim renderer = New ChromePdfRenderer()
		Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)

		' Save the PDF to a file
		Dim filePath = "UserDetails.pdf"
		pdfDocument.SaveAs(filePath)
		Console.WriteLine($"PDF generated and saved to {filePath}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Refit özelliklerini kullanarak, IMyApi adında bir API arayüzü oluşturuyoruz ve kullanıcı verisi alımı için endpoint sağlıyoruz. API için bir Refit istemcisi oluşturuyor ve Main fonksiyonunda kullanıcı verilerini asenkron olarak elde ediyoruz. Veriler başarıyla alındığında, kullanıcı nesnesi GeneratePdf metoduna aktarılır. IronPDF'nin ChromePdfRenderer sınıfını kullanarak, GeneratePdf metodunda kullanıcı bilgilerini temsil eden HTML içeriğini PDF metnine dönüştürür ve ardından bunu bir PDF dokümanı olarak çıkarırız. Sonrasında, oluşturulan PDF bir disk dosyasında saklanır.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 7 - Konsol Çıktısı

Asagida oluşturulan PDF dosyasinin ekran görüntüsu vardir.

Refit C# (Geliştiriciler İçin Nasıl Çalışır): Şekil 8 - IronPDF kullanılarak üretilen PDF Çıktısı

Sonuç

Özetlemek gerekirse, RESTful API'larla çalışan ve PDF üreten geliştiriciler, C#'da Refit'in IronPDF ile entegrasyonunda güçlü ve etkili bir çözüm bulmaktadır. Refit arayüzü, sıklıkla kullanılan kodların miktarını azaltır, bakım kolaylığını artırır ve tür güvenli, deklaratif bir yaklaşım sunarak API'ların tüketilmesini kolaylaştırır. Ancak, IronPDF, HTML metninden yüksek kaliteli PDF'ler oluşturmayı basit hale getiren, PDF dokümanları üretmek, değiştirmek ve onlarla çalışmak için geniş bir araç koleksiyonu sunar.

Geliştiriciler, Refit ile API'lardan verileri kolaylıkla alabilir ve IronPDF ile bu verilere dayalı dinamik PDF dokümanları oluşturabilir. Bu entegrasyon, çalışma akışlarını basitleştirir ve dinamik, veri odaklı PDF raporlar, faturalar ve diğer doküman tabanlı çıktılar için bol fırsat yaratır.

IronPDF ve diğer Iron Software Teknolojilerini kurumsal uygulama geliştirme yığınınıza entegre ederek, müşteriler ve son kullanıcılar için özellik açısından zengin, üst düzey yazılım çözümleri sunabilirsiniz. Bu sağlam temel, projeleri, arka plan sistemlerini ve süreç iyileştirmeyi de kolaylaştıracaktır.

Geliştiriciler, IronPDF'in ücretsiz deneme imkânından en iyi şekilde faydalanabilir. Ücreti $799. Bu teknolojiler, kapsamlı dokümantasyonları, aktif çevrimiçi geliştirici toplulukları ve düzenli güncelleştirmeleri sayesinde modern yazılım geliştirme projeleri için mükemmel bir seçenek sunar.

IronPDF'ye başlamanın ne şekilde olduğunu öğrenmek için, lütfen HTML'den PDF oluşturma kod örneklerini ve kapsamlı dokümanları ziyaret edin.

Sıkça Sorulan Sorular

Refit, .NET'te RESTful API etkileşimlerini nasıl basitleştirir?

Refit, geliştiricilerin C# özniteliklerini kullanarak API arayüzlerini tanımlamalarına olanak tanıyarak RESTful API etkileşimlerini basitleştirir. Gerekli HTTP isteklerini otomatik olarak üretir ve tür güvenli API erişimini sağlar, fazla kod yazımını azaltır ve sürdürülebilirliği artırır.

IronPDF'in PDF belgelerini yönetme konusundaki temel özellikleri nelerdir?

IronPDF, PDF belgelerini yönetme konusunda geniş kapsamlı yetenekler sunar, bunlar arasında birleştirme, açıklama ekleme ve HTML içeriğini PDF'lere dönüştürme bulunmaktadır. Ayrıca sıfırdan PDF oluşturmayı, mevcutları modifiye etmeyi ve PDF güvenliği, form işleme ve metin çıkarma gibi özellikler içerir.

IronPDF, HTML içeriğini nasıl bir PDF'ye dönüştürebilir?

IronPDF, orijinal düzen ve stilleri koruyarak HTML içeriğini bir PDF'ye dönüştürebilir. Bu, web sayfalarından veya dinamik içerikten yüksek kaliteli PDF'ler üretmek için özellikle kullanışlıdır, HTML, CSS ve JavaScript kullanarak.

Refit ve IronPDF, veri odaklı PDF oluşturma için entegre edilebilir mi?

Evet, Refit ve IronPDF, API'lerden veri çekmek ve bu veriye dayalı yüksek kaliteli PDF raporları üretmek için entegre edilebilir. Bu entegrasyon, raporlar ve faturalar gibi dinamik, veri odaklı PDF belgeleri oluşturma iş akışlarını kolaylaştırır.

Refit'i bir PDF kitaplığı ile C#'ta entegre etmenin avantajları nelerdir?

C#'ta IronPDF gibi bir PDF kitaplığı ile Refit'i entegre etmek, RESTful API'lerden veri çekme ve PDF oluşturma sürecini geliştirir. Dinamik veri ve sunumunu etkili bir şekilde yönetir, modern yazılım geliştirme projeleri için idealdir.

Refit'i bir .NET projesinde kullanmaya nasıl başlayabilirim?

.NET projesinde Refit kullanmaya başlamak için NuGet Paket Yöneticisi aracılığıyla yükleyebilirsiniz. Bu, API arayüzlerinizi C# özniteliklerle tanımlamanıza ve kesintisiz API etkileşimleri için HTTP istemci kodunu otomatik olarak oluşturmanıza olanak tanır.

Refit ile çalışırken karşılaşılan yaygın sorun giderme ipuçları nelerdir?

Refit ile sorun giderirken, API arayüz tanımlarınızın uç nokta spesifikasyonlarıyla eşleştiğinden ve istek ve yanıt veri türlerinizin doğru tanımlandığından emin olun. Ayrıca, ağ bağlantısı sorunları olup olmadığını kontrol edin ve API uç noktalarının erişilebilir olduğundan emin olun.

IronPDF, yüksek kaliteli PDF çıktısı saglamanin nasıl garantisidir?

IronPDF, HTML içeriğini, CSS ve JavaScript dahil, PDF'lere doğru bir şekilde render ederek yüksek kaliteli PDF çıktısını garanti eder ve orijinal düzen ve stilleri korur. Bu yetenek, hassas PDF belge formatlaması gerektiren uygulamalar için çok önemlidir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Chief Technology Officer

Jacob Mellor, Iron Software'in Teknoloji Müdürü ve C# PDF teknolojisinin öncüsü olan vizyoner bir mühendis. Iron Software’in temel kod tabanının ilk geliştiricisi olarak, şirketin ürün mimarisini kuruluşundan bu yana şekillendirdi ve CEO Cameron Rimington ile birlikte NASA, Tesla ve ...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara