Przejdź do treści stopki
POMOC .NET

Refit C# (jak to działa dla programistów)

Najlepsze cechy dwóch potężnych bibliotek zostały połączone w celu tworzenia niezwykle skutecznych aplikacji poprzez integrację Refit z IronPDF w języku C#. Refit ułatwia korzystanie z RESTful API, umożliwiając programistom projektowanie interfejsów API z wykorzystaniem cech języka C#, automatyczne generowanie żądań HTTP oraz gwarantując bezpieczny dostęp do API. Z kolei IronPDF oferuje szeroki zakres zaawansowanych funkcji do pracy z plikami PDF, w tym scałanie i dodawanie adnotacji do plików PDF, a także konwersję treści HTML. W połączeniu biblioteki te zapewniają płynny przebieg procesów związanych z prezentacją i pobieraniem danych. Tworzenie aplikacji opartych na danych może stać się bardziej wydajne i produktywne dzięki wykorzystaniu narzędzi takich jak Refit do pobierania danych z API oraz IronPDF do tworzenia szczegółowych, doskonałych raportów PDF na podstawie tych danych.

Czym jest Refit C#?

Refit to framework typu open source dla platformy .NET Framework, który wykorzystuje deklaratywną, bezpieczną pod względem typów metodologię w celu uproszczenia procesu wysyłania żądań HTTP do interfejsów API RESTful. Refit automatycznie generuje wymagany kod klienta HTTP poprzez określenie punktów końcowych API jako interfejsów C# wzbogaconych o cechy charakterystyczne. To znacznie redukuje szablonowy kod i poprawia czytelność kodu. Poprzez wykrywanie błędów podczas kompilacji, a nie wykonania, ta technika gwarantuje, że sygnatury metod poprawnie odpowiadają punktom końcowym API.

Dodatkowo, Refit z łatwością obsługuje serializację i deserializację JSON, umożliwiając programistom interakcję z obiektami C# zamiast ręcznej konwersji odpowiedzi API. Definiując metody HTTP, nagłówki i parametry bezpośrednio w specyfikacjach interfejsów, atrybuty upraszczają konfigurację. Ponieważ kod klienta wymaga mniej modyfikacji przy aktualizacji punktów końcowych API, kod staje się prostszy i łatwiejszy do utrzymania.

Na przyklad, Refit moze wygenerowac wymagane zadanie HTTP GET dla imienia uzytkownika, tworzac metode w interfejsie z atrybutem [Get("/users/{id}")]. To żądanie można potem wykonać poprzez bezpieczne typowo wywołanie metody. Refit to wszechstronnie bardziej produktywne rozwiązanie dla programistów do integracji API w aplikacjach .NET poprzez usunięcie problemów związanych z zarządzaniem klientami HTTP.

Refit C# (Jak to dziala dla deweloperow): Rysunek 1 - Refit: Automatyczna biblioteca REST z bezpiecznym typowaniem dla .NET Core, Xamarin i .NET

Features of Refit C

Dostępność API z Zachowaniem Typów

Refit wykrywa błędy w czasie kompilacji i zapewnia, że sygnatury metod odpowiadają punktom końcowym API. Możliwość wystąpienia błędów wykonania spowodowanych niezgodnymi punktami końcowymi lub nieprawidłowymi konfiguracjami żądań jest zmniejszona dzięki bezpieczeństwu typów.

Deklaratywny Klient HTTP

Programiści mogą używać interfejsów C# i atrybutów do tworzenia punktów końcowych API, co skutkuje bardziej czytelnym i łatwiejszym do utrzymania kodem żądań HTTP. Ta deklaratywna metoda abstrahuje złożoność implementacji metody żądania HTTP dla każdego klienta.

Automatyczna Serializacja i Deserializacja

Refit automatycznie zajmuje się konwersją obiektów C# na dane JSON. Ponieważ programiści nie muszą już ręcznie serializować ciał żądań lub deserializować odpowiedzi, obsługa danych jest znacznie prostsza.

Konfiguracja Oparta na Atrybutach

Atrybuty są używane do definiowania metod HTTP (takich jak GET, POST, PUT i DELETE) oraz parametrów. To sprawia, że konfiguracja jest prosta i łatwa do zrozumienia, ponieważ obejmuje nagłówki, ciało żądania, treść, parametry ścieżki i zapytania.

Wsparcie dla Programowania Asynchronicznego

Refit używa metod opartych na Zadaniach do obsługi asynchronicznych żądań HTTP i jest zaprojektowany tak, aby łatwo współpracować z modelami programowania asynchronicznego w .NET.

Adaptacyjne Przeglądarki Internetowe

Podstawowy klient HTTP może być dostosowany przez programistów poprzez zmianę liczb timeoutów, domyślnych ustawień nagłówków oraz konfiguracji obsługi wiadomości dla logowania, uwierzytelniania i polityki ponawiania.

Zintegrowane Zarządzanie Błędami

Refit posiada wbudowane funkcje do obsługi problemów HTTP, co ułatwia programistom włączenie własnej logiki obsługi błędów.

Elastyczność

Programiści mogą korzystać z wielu formatów lub obsługiwać nietypowe typy danych dzięki wsparciu Refit dla niestandardowych konwerterów serializacji i deserializacji.

Łączenie Integracji Iniekcji Zależności

Refit doskonale pasuje do nowoczesnych aplikacji .NET, które przestrzegają zalecanych praktyk dla iniekcji zależności (DI), ponieważ jest łatwy do zintegrowania z aplikacjami DI.

Wsparcie dla Weryfikacji

Aby zabezpieczyć wywołania API, Refit ułatwia konfigurowanie nagłówków uwierzytelniania, metod interfejsu takich jak tokeny nośnika, oraz podstawowe uwierzytelnianie.

Create and Config Refit C

Poniższe kroki można wykorzystać do skonstruowania i skonfigurowania klienta Refit w C#:

Tworzenie nowego projektu w Visual Studio

Tworzenie projektu Konsoli jest łatwe przy użyciu Visual Studio. Aby utworzyć aplikację Konsoli w Visual Studio, postępuj zgodnie z tymi krokami:

Przed użyciem Visual Studio upewnij się, że jest zainstalowane na twoim komputerze.

Rozpocznij nowy projekt

Otwórz Visual Studio, kliknij opcję "Utwórz nowy projekt".

Refit C# (Jak to dziala dla deweloperow): Rysunek 2 - W Visual Studio, kliknij opcje

Z wyboru po lewej stronie okna "Utwórz nowy projekt" wybierz preferowany język programowania (np. C#).

Z następnej listy szablonów projektów możesz wybrać szablon "Console App" lub "Console App (.NET Core)".

Nazwij swój projekt i wybierz miejsce przechowywania projektu.

Refit C# (Jak to działa dla programistów): Rysunek 3 - Skonfiguruj swoją aplikację Konsolową określając nazwę projektu, lokalizację oraz nazwę rozwiązania. Następnie kliknij Dalej.

Wybierz odpowiednią wersję .NET Framework. Następnie kliknij "Utwórz", aby utworzyć projekt aplikacji Konsolowej.

Refit C# (Jak to działa dla programistów): Rysunek 4 - Wybierz wersję .NET Framework, następnie kliknij Utwórz. Twój projekt aplikacji Konsolowej zostanie pomyślnie utworzony.

Instalacja Refit

Najpierw należy dodać bibliotekę Refit do projektu. Możesz zainstalować pakiet NuGet Refit korzystając z Menedżera pakietów NuGet lub używając .NET CLI w Visual Studio, aby to osiągnąć.

Korzystanie z .NET CLI do instalacji:

dotnet add package Refit
dotnet add package Refit
SHELL

Zdefiniuj Interfejs API

Utwórz interfejs, aby symbolizować swoje API. Aby zdefiniować metody HTTP i punkty końcowe, użyj atrybutów Refit.

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

Utwórz i Skonfiguruj Klienta Refit

Uruchom klienta Refit i dostosuj jego ustawienia w razie potrzeby. Może to być zaimplementowane bezpośrednio w głównym kodzie lub w usłudze, w różnych miejscach aplikacji.

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

Zaawansowana Konfiguracja

Dzięki ustawieniu bazowego HttpClient, możesz dodatkowo personalizować klienta Refit. Na przykład, możesz ustawiać timeouty, stosować atrybuty nagłówków, dodawać domyślne nagłówki albo używać obsługi wiadomości dla polityk ponawiania, uwierzytelniania i logowania.

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

Używając bezpiecznej typowo i łatwej do utrzymania konsumpcji RESTful API poprzez tworzenie i konfigurację klienta Refit w C# zgodnie z tymi instrukcjami.

Refit C# (Jak to dziala dla deweloperow): Rysunek 5 - Wyjscie Konsoli

Pierwsze kroki

Pierwsze kroki w integracji Refit i IronPDF w projekcie C# to zainstalowanie obu bibliotek, skonfigurowanie prostego klienta API przy użyciu Refit do pobrania danych i wykorzystanie IronPDF do utworzenia PDF na podstawie tych danych. Oto kroki, aby to osiągnąć:

Czym jest IronPDF?

Biblioteka o bogatej funkcjonalności do obsługi dokumentów PDF w aplikacjach .NET to IronPDF. Dzięki swojemu bogatemu zestawowi funkcji, użytkownicy mogą tworzyć PDFy od zera lub z materiałów HTML, jak również zmieniać istniejące dokumenty PDF przez dodawanie, usuwanie lub modyfikowanie części. IronPDF daje programistom potężne API do tworzenia, modyfikowania i konwertowania plików PDF, co ułatwia pracę z PDFami w aplikacjach .NET.

IronPDF wyróżnia się w konwersji HTML do PDF, zapewniając precyzyjne zachowanie oryginalnych układów i stylów. Idealnie nadaje się do tworzenia plików PDF z treści internetowych, takich jak raporty, faktury i dokumentacja. Dzięki obsłudze plików HTML, adresów URL i surowych ciągów znaków HTML, IronPDF z łatwością tworzy wysokiej jakości dokumenty 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");
    }
}
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# (Jak to dziala dla deweloperow): Rysunek 6 - IronPDF for .NET: Biblioteka C# PDF

Najważniejsze cechy IronPDF

Konwersja HTML do PDF

IronPDF pozwala tworzyć wysokiej jakości dokumenty PDF używając treści HTML, w tym CSS i JavaScript. Ta funkcjonalność jest bardzo przydatna do tworzenia PDFów z dynamicznych treści lub stron internetowych.

Edytowanie i Manipulowanie PDFami

IronPDF oferuje narzędzia modyfikacji istniejących dokumentów PDF. Można wyodrębnić strony z PDF, dodawać tekst, obrazy, znaki wodne, lub notatki, a także łączyć kilka PDF w jeden dokument.

Tworzenie PDF od Zera

Korzystając z API IronPDF, można programowo dodawać tekst, obrazy, kształty i inne obiekty do nowych dokumentów PDF. To umożliwia dynamiczne generowanie faktur, raportów i innych dokumentów wynikowych w formacie PDF.

Bezpieczeństwo PDFów

Można zarządzać dostępem i chronić poufne dane poprzez szyfrowanie dokumentów PDF przy użyciu IronPDF i dodanie zabezpieczeń hasłem.

Formularze w PDF

Poprzez wprowadzanie danych do pól formularzy, użytkownicy mogą interaktywnie pracować z dokumentami PDF, tworząc i wypełniając formularze PDF przy użyciu IronPDF.

Ekstrakcja Tekstu

IronPDF ułatwia wyszukiwanie, analizę i manipulację danymi tekstowymi poprzez ekstrakcję treści tekstowych z dokumentów PDF.

Transformacja na Format Obrazów

IronPDF jest odpowiedni dla sytuacji, gdy potrzebne są obrazy zamiast PDF, ponieważ może konwertować dokumenty PDF na popularne formaty obrazów, takie jak PNG, JPEG i BMP.

Zainstaluj IronPDF

Użyj .NET CLI lub Menedżera pakietów NuGet, aby dodać IronPDF do swoich projektów .NET.

dotnet add package IronPdf

Integrate IronPDF With Refit C

Przeanalizujmy przykładowy kod C# łączący Refit i IronPDF. W tym przykładzie użyjemy Refit do pobrania danych z fikcyjnego RESTful API i wykorzystamy IronPDF do utworzenia dokumentu PDF na podstawie tych danych. Tak działa poniższy kod:

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

Używając atrybutów Refit, tworzymy interfejs API o nazwie IMyApi i dostarczamy punkt końcowy dla pobierania danych użytkownika. Budujemy klienta Refit dla API i asynchronicznie pobieramy dane użytkownika w funkcji Main. W przypadku, gdy dane zostaną pomyślnie pobrane, obiekt użytkownika jest przekazywany do metody GeneratePdf. Za pomocą klasy ChromePdfRenderer z IronPDF, tworzymy konwersję treści HTML na tekst PDF, który reprezentuje szczegóły użytkownika w metodzie GeneratePdf, a następnie zapisujemy go jako dokument PDF. Następnie, utworzony PDF jest zapisywany w pliku na dysku.

Refit C# (Jak to dziala dla deweloperow): Rysunek 7 - Wyjscie Konsoli

Poniżej znajduje się zrzut ekranu wygenerowanego pliku PDF.

Refit C# (Jak to dziala dla deweloperow): Rysunek 8 - Wygenerowany plik PDF przy uzyciu IronPDF

Wnioski

Podsumowując, programiści pracujący z RESTful API i produkcją PDF mają mocne i efektywne rozwiązanie w postaci integracji Refit z IronPDF w C#. Interfejs Refit redukuje zbędny kod, poprawia łatwość utrzymania, oferuje bezpieczne typowo, deklaratywne podejście, ułatwiając korzystanie z API. Tymczasem, IronPDF dostarcza rozbudowaną kolekcję narzędzi do produkcji, modyfikacji i pracy z dokumentami PDF, co ułatwia tworzenie wysokiej jakości PDFów z tekstu HTML.

Programiści mogą łatwo pobierać dane z API przy użyciu Refit i tworzyć dynamiczne dokumenty PDF przy użyciu IronPDF na podstawie tych danych, integrując oba narzędzia. Ta integracja usprawnia procesy pracy, tworząc szerokie możliwości dla tworzenia dynamicznych, opartych na danych raportów PDF, faktur i innych dokumentów wychodzących.

Możesz zintegrować IronPDF i inne Iron Software Technologies do swojego stosu rozwoju aplikacji Enterprise, aby dostarczać bogate w funkcje, wysokiej klasy rozwiązania oprogramowania dla klientów i użytkowników końcowych. Ta solidna baza również ułatwi projekty, systemy zaplecza i poprawę procesów.

Deweloperzy moga jak najlepiej wykorzystac bezplatny okres probny koszt IronPDF wynosi $999. Te technologie są doskonałą opcją dla nowoczesnych projektów rozwoju oprogramowania dzięki ich rozbudowanej dokumentacji, aktywnej społeczności programistów online oraz regularnym aktualizacjom.

Aby dowiedzieć się więcej, jak rozpocząć z IronPDF, odwiedź przykłady kodu HTML do PDF i kompletną dokumentację.

Często Zadawane Pytania

W jaki sposób Refit upraszcza interakcje z RESTful API w .NET?

Refit upraszcza interakcje z RESTful API, umożliwiając programistom definiowanie interfejsów API przy użyciu atrybutów C#. Automatycznie generuje niezbędne żądania HTTP i zapewnia bezpieczny dostęp do API, ograniczając ilość powtarzalnego kodu i zwiększając łatwość konserwacji.

Jakie są kluczowe funkcje IronPDF do obsługi dokumentów PDF?

IronPDF oferuje szerokie możliwości obsługi dokumentów PDF, w tym scałanie, dodawanie adnotacji i konwersję treści HTML do formatu PDF. Obsługuje również tworzenie plików PDF od podstaw, modyfikowanie istniejących oraz zawiera funkcje takie jak zabezpieczenia PDF, obsługa formularzy i wyodrębnianie tekstu.

Jak można wykorzystać IronPDF do konwersji treści HTML do formatu PDF?

IronPDF może konwertować treści HTML na format PDF, zachowując oryginalny układ i style. Jest to szczególnie przydatne do generowania wysokiej jakości plików PDF ze stron internetowych lub treści dynamicznych przy użyciu HTML, CSS i JavaScript.

Czy Refit i IronPDF można zintegrować w celu generowania plików PDF na podstawie danych?

Tak, Refit i IronPDF można zintegrować w celu wydajnego pobierania danych z interfejsów API i tworzenia wysokiej jakości raportów PDF na podstawie tych danych. Integracja ta usprawnia procesy tworzenia dynamicznych, opartych na danych dokumentów PDF, takich jak raporty i faktury.

Jakie są zalety integracji Refit z biblioteką PDF w języku C#?

Zintegrowanie Refit z biblioteką PDF, taką jak IronPDF w C#, pomaga usprawnić proces pobierania danych z interfejsów API RESTful oraz generowania plików PDF. Zapewnia to wydajną obsługę danych dynamicznych i ich prezentację, co czyni to rozwiązanie idealnym dla nowoczesnych projektów programistycznych.

Jak mogę zacząć korzystać z Refit w projekcie .NET?

Aby rozpocząć korzystanie z Refit w projekcie .NET, można zainstalować go za pomocą menedżera pakietów NuGet. Pozwala on definiować interfejsy API za pomocą atrybutów C#, automatycznie generując kod klienta HTTP w celu płynnej interakcji z API.

Jakie są typowe wskazówki dotyczące rozwiązywania problemów podczas pracy z Refit?

Podczas rozwiązywania problemów z Refit upewnij się, że definicje interfejsu API są zgodne ze specyfikacjami punktów końcowych oraz że typy danych żądań i odpowiedzi są poprawnie zdefiniowane. Sprawdź również, czy nie występują problemy z łącznością sieciową i upewnij się, że punkty końcowe API są dostępne.

Jak IronPDF zapewnia wysokiej jakości wyniki PDF?

IronPDF zapewnia wysoką jakość plików PDF poprzez dokładne renderowanie treści HTML, w tym CSS i JavaScript, do plików PDF przy zachowaniu oryginalnego układu i stylów. Ta funkcja ma kluczowe znaczenie dla aplikacji wymagających precyzyjnego formatowania dokumentów PDF.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczą...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie