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

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

C# içinde Refit ile IronPDF arasında entegrasyon yaparak iki güçlü kütüphanenin en iyi özellikleri birleştirilerek son derece etkili uygulamalar üretilir. Refit, geliştiricilerin C# özellikleri ile API arayüzleri tasarlayarak RESTful API'leri kullanmayı kolaylaştırır, HTTP isteklerini otomatik olarak oluşturur ve tür güvenli API erişimini garanti eder. Öte yandan, IronPDF, HTML içeriğini dönüştürme, PDF birleştirme ve not ekleme gibi PDF dosyalarıyla çalışmak için geniş bir güçlü özellik yelpazesi sunar. Bu kütüphaneler, veri sunumu ve alım için akıcı iş akışları sağlar. Veri odaklı uygulama geliştirmeyi daha verimli ve üretken hale getirerek, Refit gibi araçlar bir API'den veri almak için ve IronPDF, bu verilere dayalı ayrıntılı, yüksek kaliteli PDF raporları üretmek için kullanılabilir.

Refit C# nedir?

Refit, .NET için açık kaynaklı bir çerçevedir ve RESTful API'lere HTTP istekleri gönderme sürecini basit hale getiren, beyan edici, tür güvenli bir metodoloji kullanır. Refit, C# arayüzleri API uç noktalarını belirtilen özelliklerle süsleyerek gereken HTTP istemci kodunu otomatik olarak üretir. Bu, kod kalıbını büyük ölçüde azaltır ve kod okunabilirliğini artırır. Derleme sırasında değil, çalıştırma sırasında hataları belirleyerek bu teknik, yöntem imzalarının API uç noktalarıyla doğru bir şekilde eşleşmesini garantiler.

Ayrıca, Refit, geliştiricilerin API yanıtlarını manuel olarak dönüştürmeleri yerine C# nesneleriyle etkileşimde bulunmasını sağlayarak JSON sıralama ve sıralama çözümlemeyi kolayca ele alır. Özellikler, HTTP yöntemleri, başlıklar ve parametreleri doğrudan arayüz spesifikasyonlarında belirleyerek yapılandırmayı basitleştirir. API uç noktaları güncellendiğinde istemci kodunun daha az değiştirilmesi gerektiğinden, kod daha basit ve daha kolay sürdürülebilir hale gelir.

Örneğin, Refit, [Get("/users/{id}")] özelliğine sahip bir arabirimde bir yöntem oluşturarak bir kullanıcının adı için gerekli olan HTTP GET isteğini üretebilir. Bu istek daha sonra tür güvenli bir yöntem çağrısı yoluyla yapılabilir. Refit, HTTP istemcilerinin yönetilmesiyle ilgili baş ağrılarının soyutlanması sayesinde, geliştiricilerin .NET uygulamalarına API entegrasyonu sağlaması için her yönden daha üretken bir çözümdü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

Features of Refit C

Tür Güvenli API Mevcudiyeti

Refit, derleme zamanında hataları belirler ve yöntem imzalarının API uç noktalarıyla eşleşmesini sağlar. Tür güvenliği bu, farklı uç noktalar ya da yanlış istek ayarları nedeniyle çalıştırma hatalarının olasılığını azaltır.

HTTP İstemci Beyan Edici

Geliştiriciler, API uç noktalarını oluşturmak için C# arayüzleri ve özellikler kullanabilir, böylece daha temiz, daha sürdürülebilir HTTP istek kodu ortaya çıkarır. Bu beyan edici yöntem, istemci başına bir HTTP istek yöntemi uygulamanın karmaşıklığını soyutlar.

Otomatik Sıralama ve Sıralama Çözümleme

Refit, C# nesnelerinin JSON verilerine dönüşümünü otomatik olarak ele alır. Geliştiricilerin istek gövdelerini manuel olarak sıralamalarına ya da yanıtları sıralama çözümleme yapmalarına gerek kalmadığı için veri işleme önemli ölçüde basitleştirilir.

Özelliklere Dayalı Yapılandırma

Özellikler, HTTP yöntemlerini (GET, POST, PUT ve DELETE gibi) ve parametreleri tanımlamak için kullanılır. Bu yapılandırma, başlıklar, istek gövdesi, içerik, yol parametreleri ve sorgu parametrelerini içerdiğinden basit ve anlaşılır hale gelir.

Asenkron Programlama Desteği

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

Uyarlanabilir Web Tarayıcıları

Geliştiriciler, kayıt, kimlik doğrulama ve yeniden deneme politikaları için mesaj işleyici yapılandırmaları, varsayılan başlık ayarları ve süre aşımı numaralarını değiştirerek çekirdek HTTP istemcisini düzenleyebilir.

Entegre Hata Yönetimi

Refit, geliştiricilerin kendi özel hata işleme mantıklarını basitçe entegre etmelerini mümkün kılan HTTP sorunlarını halletmek için yerleşik yeteneklere sahiptir.

Uyarlanabilirlik

Geliştiriciler, Refit'in özel sıralama ve sıralama çözümleme dönüşümleyicileri için desteği sayesinde birden fazla formatı kullanabilir veya sıradışı veri türlerini işleyebilir.

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

Refit, bağımlılık enjeksiyonu (DI) için önerilen uygulamalara uyan modern .NET uygulamaları için mükemmel bir çözümdür çünkü DI uygulamalarına entegre edilmesi basittir.

Doğrulama Desteği

Refit, API çağrılarını güvence altına almak için kimlik doğrulama başlıkları, taşıyıcı belirteçler ve temel kimlik doğrulama gibi arabirim yöntemlerini yapılandırmayı kolaylaştırır.

Create and Config Refit C

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

Yeni Bir Visual Studio Projesi Oluştur

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

Visual Studioyu kullanmadan önce, bilgisayarınıza kurulu olduğundan emin olun.

Yeni Bir Proje Başlatın

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" kutusunun sol tarafındaki seçimden, tercih ettiğiniz programlama dilini (örneğin C#) seçin.

Sonraki proje şablonu referans listesinde, "Konsol Uygulaması" veya ".NET Core Konsol Uygulaması" şablonunu seçebilirsiniz.

Projenize bir ad verin ve projenin depolanacağı yeri seçin.

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

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

Refit C# (Geliştiriciler için Nasıl Çalışır): Şekil 4 - .NET Framework'ü seçin, ardından "Oluştur"a tıklayın. Konsol Uygulama projeniz başarıyla oluşturulacak.

Refit'i Yükle

Öncelikle Refit kütüphanesi projenize dahil edilmelidir. Bunu başarmak için NuGet Paket Yöneticisini kullanarak veya Visual Studio'da .NET CLI'yi kullanarak Refit NuGet Paketini yükleyebilirsiniz.

Kurulum için .NET CLI kullanarak:

dotnet add package Refit
dotnet add package Refit
SHELL

API Arayüzünü Tanımla

API'nizi simgeler bir arayüz oluşturun. HTTP yöntemlerini ve uç noktalarını 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 Yapılandır

Refit istemcisini başlatın ve ayarlarını gerektiği gibi ayarlayın. Bu, uygulamanızdaki diğer konumların yanı sıra ana kodunuzda veya 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

Altındaki HttpClient ayarlayarak, Refit istemcisini daha da kişiselleştirebilirsiniz. Örnek olarak, zaman aşımını ayarlayabilir, başlıklar özniteliğini uygulayabilir, varsayılan başlıkları ekleyebilir veya yeniden deneme politikaları, kimlik doğrulama ve günlükleme 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

Bu talimatları izleyerek C#'da bir Refit istemcisi oluşturarak ve yapılandırarak tür güvencesi olan ve sürdürülebilir RESTful API tüketimi kullanabilirsiniz.

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

Başlarken

Her iki kütüphaneyi yüklemek, verileri almak için Refit kullanarak basit bir API istemcisi yapılandırmak ve IronPDF kullanarak bu verilerden bir PDF oluşturmak, C# projesinde Refit ve IronPDF'i entegre etmenin ilk adımlarıdır. Bu işlemi gerçekleştirmek için adımlar şunlardır:

IronPDF Nedir?

.NET uygulamalarında PDF belgelerini işlemek için tam özellikli bir kütüphane IronPDF olarak adlandırılır. Geniş özellik seti sayesinde, kullanıcılar sıfırdan veya HTML malzemeden PDF oluşturabilir ve mevcut PDF belgelerini parçalar ekleyerek, silerek veya değiştirerek değiştirebilir. IronPDF, geliştiricilere PDF dosyalarını oluşturma, değiştirme ve dönüştürme konusunda sağlam bir API sağlar ve böylece .NET uygulamalarında PDF'lerle çalışmayı kolaylaştırır.

IronPDF, HTML'den PDF'ye dönüşümde mükemmeldir, özgün düzenler ve stillerin hassas bir şekilde korunmasını sağlar. Raporlar, faturalar ve belgeler gibi web tabanlı içeriklerden PDF oluşturmak için mükemmeldir. HTML dosyaları, URL'ler ve ham HTML dizeleri için destekle, IronPDF yüksek kaliteli PDF belgelerini kolayca ü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'nin Ana Özellikleri

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

IronPDF, HTML içeriği kullanarak yüksek kaliteli PDF belgeleri oluşturmanıza olanak tanır, bu HTML CSS ve JavaScript dahil edilir. Bu işlevsellik, dinamik içerikten veya web sayfalarından PDF oluşturmak için çok yararlıdır.

PDF Dosyalarını Düzenleme ve Manipüle Etme

IronPDF, mevcut PDF belgelerini değiştirme araçları sunar. PDF'den sayfa çıkarmak, metin, resim, filigran veya not eklemek ve birden fazla PDF'yi tek bir belgede birleştirmek mümkündür.

Başlangıçtan PDF Oluşturma

IronPDF'in API'si ile metin, resim, şekil ve diğer nesneleri yeni PDF belgelerine programatik olarak ekleyebilirsiniz. Bu, fatura, rapor ve diğer belge tabanlı çıktıları dinamik olarak oluşturma olanağı sağlar.

PDF'lerin Güvenliği

IronPDF kullanarak PDF belgelerini şifreleyip parola koruması ekleyerek erişimi yönetebilir ve hassas verileri koruyabilirsiniz.

PDF İçindeki Formlar

IronPDF kullanarak PDF formları oluşturup doldurarak kullanıcılar veri alanlarına veri girerek PDF belgeleriyle etkileşimde bulunabilir.

Metin Çıkarımları

IronPDF, PDF belgelerinden metin içeriği çıkararak metin verilerini kolayca arama, analiz etme ve manipüle etme olanağı sağlar.

Görüntü Formatlarına Dönüştürme

IronPDF, PDF belgelerini PNG, JPEG ve BMP gibi yaygın görüntü formatlarına dönüştürebildiği için, görüntü gerektiren durumlara uygun bir çözümdür.

IronPDF Kurulumu

.NET projelerinize IronPDF eklemek için .NET CLI veya NuGet Package Manager'ı kullanın.

dotnet add package IronPdf

Integrate IronPDF With Refit C

Refit ile IronPDF'i birleştiren bir C# kod örneğini inceleyelim. Bu örnekte, hayali bir RESTful API'den veri almak için Refit'i ve bu verilere dayalı bir PDF belgesi oluşturmak için IronPDF'i kullanacağız. Aşağıdaki kodun çalışması şu şekildedir:

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(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(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 özniteliklerini kullanarak bir API arayüzü olan IMyApi'i oluşturuyoruz ve kullanıcı verilerini alma için uç noktasını sağlıyoruz. API için bir Refit istemcisi oluşturuyoruz ve Main fonksiyonunda kullanıcı verilerini asenkron olarak alıyoruz. Veriler başarıyla alındığında, kullanıcı nesnesi GeneratePdf metoduna aktarılır. IronPDF'in ChromePdfRenderer sınıfını kullanarak, GeneratePdf metodunda kullanıcı detaylarını temsil eden HTML içeriğini PDF metnine dönüştürüp ardından PDF belgesi olarak çıktısını alıyoruz. Sonrasında oluşturulan PDF bir disk dosyasına kaydedilir.

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

Aşağıda oluşturulan PDF dosyasının ekran görüntüsü bulunmaktadır.

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

Sonuç

Sonuç olarak, C#'da Refit ile IronPDF entegrasyonu, RESTful API'lerle ve PDF üretimiyle çalışan geliştiriciler için güçlü ve etkili bir çözümdür. Refit arayüzü, boilerplate kodu azaltır, sürdürülebilirliği artırır ve tür güvenli, deklaratif bir yaklaşım sunarak API'lerin tüketilmesini kolaylaştırır. Ancak, IronPDF, HTML metninden yüksek kaliteli PDF'ler oluşturmayı basit hale getiren, PDF belgelerini üretme, değiştirme ve çalışma konusunda kapsamlı bir araç sağlar.

Geliştiriciler, Refit ve IronPDF araçlarını entegre ederek API'lerden verileri kolayca alabilir ve bu verilere dayalı dinamik PDF belgeleri oluşturabilir. Bu entegrasyon, iş akışlarını düzenler ve dinamik, veri odaklı PDF raporları, faturalar ve diğer belgeler tabanlı çıktılar oluşturmak için çok sayıda fırsat yaratır.

IronPDF ve diğer Iron Software Teknolojileri'ni kurumsal uygulama geliştirme yığınıza entegre ederek, istemciler ve son kullanıcılar için zengin özelliklere sahip, yüksek kaliteli yazılım çözümleri sunabilirsiniz. Bu sağlam temel ayrıca projeleri, altyapı sistemlerini ve süreç iyileştirmeyi de kolaylaştıracaktır.

Geliştiriciler, IronPDF'in ücretsiz deneme maliyetinden en iyi şekilde yararlanabilirler, bu $999. Bu teknolojiler, kapsamlı belgeleri, aktif çevrimiçi geliştirici topluluğu ve düzenli güncellemeleri sayesinde modern yazılım geliştirme projeleri için mükemmel bir seçenektir.

IronPDF ile nasıl başlayacağınıza dair daha fazla bilgi edinmek için lütfen HTML'den PDF oluşturmak için kod örneklerini ve kapsamlı belgeleri ziyaret edin.

Sıkça Sorulan Sorular

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

Refit, C# özniteliklerini kullanarak API arayüzlerini tanımlamanıza olanak tanıyarak RESTful API etkileşimlerini basitleştirir. Gereken HTTP isteklerini otomatik olarak oluşturur ve tip-güvenli API erişimini sağlar, bu da kod tekrarını azaltır ve bakımı kolaylaştırır.

IronPDF'in PDF belgelerini işleme için ana özellikleri nelerdir?

IronPDF, PDF belgelerini işleme konusunda çeşitli yetenekler sunar, bunlar arasında birleştirme, açıklama ekleme ve HTML içeriğini PDF'lere dönüştürme bulunur. Ayrıca sıfırdan PDF oluşturma, mevcut olanları değiştirme gibi özelliklerinin yanı sıra PDF güvenliği, form işleme ve metin çıkarma gibi özellikleri içerir.

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

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

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

Evet, Refit ve IronPDF, API'lardan verileri verimli bir şekilde almak ve bu verilere 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 C#'ta bir PDF kütüphanesi ile entegre etmenin avantajları nelerdir?

Refit'i C#'ta IronPDF gibi bir PDF kütüphanesi ile entegre etmek, RESTful API'lardan veri alım sürecini ve PDF oluşturmayı kolaylaştırır. Dinamik veri ve sunumun etkin bir şekilde ele alınmasını sağlar ve modern yazılım geliştirme projeleri için idealdir.

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

.NET projesinde Refit kullanmaya başlamak için NuGet Paket Yöneticisi aracılığıyla yükleyebilirsiniz. C# öznitelikleri ile API arayüzlerini tanımlamanızı sağlar ve sorunsuz API etkileşimleri için HTTP istemci kodlarını otomatik olarak oluşturur.

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

Refit sorunlarını giderirken API arayüz tanımlarınızın uçnokta belirtimlerine uyduğundan ve istek ve yanıt veri türlerinin doğru tanımlandığından emin olun. Ayrıca ağ bağlantı sorunları olup olmadığını kontrol edin ve API uçnoktalarının erişilebilir olduğunu doğrulayın.

IronPDF yüksek kaliteli PDF çıktılarını nasıl sağlar?

IronPDF, CSS ve JavaScript dahil HTML içeriğini tam olarak render ederek ve orijinal düzen ve stilleri koruyarak yüksek kaliteli PDF çıktılarını garanti eder. Bu yetenek, hassas PDF belge formatlaması gerektiren uygulamalar için önemlidir.

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 ...

Daha Fazla Oku

Iron Destek Ekibi

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