
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.

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

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.

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

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
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...
}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 ClassUtwó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}");
}
}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 ClassZaawansowana 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}");
}
}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 ClassUżywając bezpiecznej typowo i łatwej do utrzymania konsumpcji RESTful API poprzez tworzenie i konfigurację klienta Refit w C# zgodnie z tymi instrukcjami.

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

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

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

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ącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.
Powiązane artykuły


