.NET 幫助

Refit C#(它如何為開發人員工作)

發佈 2024年8月13日
分享:

介紹

將兩個強大函式庫的最佳功能結合在一起,通過集成產生非常有效的應用程序。 重構IronPDF 在C#中,Refit 透過允許開發人員使用C#特性設計API介面來使使用RESTful API變得更簡單,並生成 超文本傳輸協定 自動化請求,並保證類型安全的 API 訪問。相反地,IronPDF 提供了大量強大的功能來處理 PDF 文件,包括合併和註釋 PDF 以及轉換 HTML 內容。這些庫結合在一起提供了平滑的數據呈現和檢索工作流程。使用像 Refit 這樣的工具從 API 檢索數據,並使用 IronPDF 根據這些數據生成詳細且高質量的 PDF 報告,可以使數據驅動的應用程式開發變得更加高效和富有成效。

Refit C# 是什麼?

重構 是一個開源的 .NET 框架,使用聲明式、類型安全的方法來簡化發送 HTTP 請求到 RESTful API 的過程。Refit 通過將 API 端點指定為帶有特徵的 C# 介面,自動生成所需的 HTTP 客戶端代碼。這大大減少了樣板代碼並提高了代碼的可讀性。通過在編譯期間而非執行期間檢測錯誤,此技術保證了方法簽名正確匹配 API 端點。

此外,Refit 輕鬆處理 JSON 序列化和反序列化,使開發者能夠與 C# 對象互動,而不用手動轉換 API 回應。通過直接在介面規範中定義 HTTP 方法、標頭和參數,屬性使配置更簡單。因為當 API 端點更新時客戶端代碼需要修改的地方更少,代碼變得更簡單且更易於維護。

例如,Refit 可以通過在介面中創建一個方法來生成所需的 HTTP GET 請求字串用戶名。 [獲得("/users/{ID}請提供您想要翻譯的內容。)] 使用此屬性後,可以通過類型安全的方法調用來發送請求。Refit 通過封裝管理 HTTP 客戶端的麻煩,為開發人員提供了一個更加高效的解決方案,使其能夠將 API 集成到 .NET 應用程序中。

Refit C#(適用於開發者的工作原理):圖 1 - Refit:用於 .NET Core、Xamarin 和 .NET 的自動類型安全 REST 庫

Refit C# 的功能

類型安全 API 可用性

Refit 在編譯時檢測錯誤,並確保方法簽名與 API 端點相符。 這種類型安全性減少了由端點不匹配或不正確的請求設置引起的運行時錯誤的可能性。

HTTP 客戶端宣言式

開發人員可以使用 C# 介面和屬性來構建 API 端點,從而生成更乾淨、更易於維護的 HTTP 請求代碼。這種宣言式方法抽象了對每個客戶端實現 HTTP 請求方法的複雜性。

自動序列化和反序列化

Refit 自動處理將 C# 對象轉換為 JSON 數據。由於開發者不再需要手動序列化請求正文或反序列化響應,數據處理變得更加簡單。

基於屬性的配置

屬性用於定義 HTTP 方法 (如 GET、POST、PUT 和 DELETE) 和參數。這使配置變得簡單且容易理解,因為它包括標頭、請求正文、內容、路徑參數和查詢參數。

異步編程支持

Refit 使用基於任務的方法來處理異步 HTTP 請求,並設計成可以輕鬆地與 .NET 中的異步編程模型互動。

可調式網頁瀏覽器

核心 HTTP 用戶端可由開發人員進行自定義,包括更改超時時間、預設標頭設置、以及消息處理器配置,用於日誌記錄、身份驗證和重試策略。

整合錯誤管理

Refit 具有內建處理 HTTP 問題的功能,使開發人員能夠輕鬆地整合自己的自訂錯誤處理邏輯。

適應性

開發人員可以利用多種格式,或藉由 Refit's 支援自訂序列化和反序列化轉換器來處理不尋常的數據類型。

結合相依注入整合

Refit 非常適合當代 .NET 應用程序,符合相依注入的推薦實踐 (數字輸入) 由於它很容易集成到依賴注入應用程序中。

協助驗證

為了保護 API 呼叫,Refit 使配置身份驗證標頭、介面方法(如持有者令牌)和基本身份驗證變得簡單。

建立和配置 RefIt 客戶端 C

以下步驟可用於在 C# 中構建和設置 Refit 客戶端:

建立新的 Visual Studio 專案

使用 Visual Studio 建立一個控制台專案十分容易。要在 Visual Studio 中建立一個控制台應用程式,請按照以下步驟操作:

在使用前 Visual Studio,確認它已安裝在您的電腦上。

開始一個新專案

打開 Visual Studio,點擊「建立新專案」選項。

重架 C# (它如何為開發人員工作):圖2 - 在 Visual Studio 中,點擊“創建新項目”選項並選擇控制台應用程式。

在"創建新專案"框的左側選擇中,選擇您偏好的程式語言 (例如 C#)從以下的專案模板參考列表中,您可以選擇「Console App」或「Console App」 (.NET Core)"模板。

給您的專案命名,並選擇專案的儲存位置。

重架 C# (對開發者的運作方式):圖3 - 通過指定專案名稱、位置和解決方案名稱來配置你的控制台應用程式。然後點擊下一步。

選擇適當的 .NET 框架。然後點擊“建立”來建立控制台應用程式專案。

重裝 C#(對開發人員的運作方式):圖 4 - 選擇 .NET Framework,然後點擊 Create。您的控制台應用程式專案將會成功創建。

安裝 Refit

您必須先將 Refit 程式庫包含在您的專案中。您可以使用 NuGet Package Manager 安裝 Refit NuGet 套件,或者使用 Visual Studio 中的 .NET CLI 來完成這項工作。

使用 .NET CLI 進行安裝:

dotnet add package Refit
dotnet add package Refit
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

定義 API 介面

建立一個介面來象徵你的 API。要定義 HTTP 方法和端點,請使用 Refit 屬性。

using Refit;
using System.Threading.Tasks;
public interface IMyApi
{
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}
using Refit;
using System.Threading.Tasks;
public interface IMyApi
{
    [Get("/users/{id}")]
    Task<User> GetUserAsync(int id);
    [Post("/users")]
    Task<User> CreateUserAsync([Body] User user);
}
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    // Other properties...
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

建立並配置 Ref​​it 用戶端

啟動 Refit 用戶端並根據需要調整設定。可以直接在您的主代碼中實現這一點,也可以在服務或應用程式中的其他位置實現。

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}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

進階設定

透過設定底層的 HttpClient,您可以進一步個性化 Refit 客戶端。舉例來說,您可以設置超時時間、應用標頭屬性、添加預設標頭,或使用消息處理程序來進行重試策略、身份驗證和日誌記錄。

using System.Net.Http;
using Refit;
using System;
using System.Threading.Tasks;
public class Program
{
    public static async Task Main(string[] args)
    {
        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");
        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)
    {
        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");
        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}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

您可以按照以下指示通過在 C# 中創建和配置 Refit 客戶端來使用類型安全且可維護的 RESTful API 消費。

Refit C#(開發人員如何使用):圖5 - 控制台輸出

快速入門

安裝這兩個庫,使用 Refit 配置一個簡單的 API 客戶端來檢索數據,並使用 IronPDF 基於這些數據創建 PDF,是在 C# 項目中整合 Refit 和 IronPDF 的第一步。以下是實現這個過程的步驟:

什麼是 IronPDF?

一個功能豐富的庫,用於在 .NET 應用程序中處理 PDF 文件。 IronPDF其廣泛的功能集允許用戶從頭開始或從 HTML 材料創建 PDF,並且可以通過添加、刪除或更改部分來更改現有的 PDF 文件。IronPDF 為開發人員提供了一個強大的 API 用於創建、修改和轉換 PDF 文件,使在 .NET 應用程序中處理 PDF 更加容易。

Refit C#(開發者使用方式):圖6 - IronPDF for .NET:C# PDF庫

IronPDF 的主要功能

將 HTML 轉換為 PDF

IronPDF 讓您可以使用 HTML 內容(包括 CSS 和 JavaScript)創建高品質的 PDF 文件。此功能對於從動態內容或網頁創建 PDF 非常有用。

編輯和操作 PDF

IronPDF 為現有的 PDF 文檔提供修改工具。可以從 PDF 中提取頁面、添加文本、照片、水印或註釋,並將多個 PDF 合併成一個文檔。

從頭開始製作 PDF

使用 IronPDF 的 API,您可以以程式方式向新的 PDF 文件添加文本、照片、形狀和其他物件。這使得動態生成 PDF 發票、報告和其他基於文件的輸出成為可能。

PDF 的安全性

您可以使用 IronPDF 加密 PDF 文檔並添加密碼保護來管理訪問和保護關鍵數據。

PDF 中的表單

透過將數據填入表單欄位,用戶可以使用 IronPDF 創建和填寫 PDF 表單,以與 PDF 文件進行互動。

文字提取

IronPDF 透過從 PDF 文件中提取文本內容,輕鬆實現文本數據的搜索、分析和操作。

轉換為圖片格式

IronPDF 適用於需要圖片而不是 PDF 的情況,因為它可以將 PDF 文件轉換為常見的圖片格式,包括 PNG、JPEG 和 BMP。

安裝 IronPDF

使用 .NET CLI 或 NuGet 套件管理器新增 IronPDF 到您的 .NET 項目中。

dotnet add package IronPdf
dotnet add package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronPdf
VB   C#

將 IronPDF 與 Refit 集成 C#

讓我們來剖析一個將 Refit 與 IronPDF 結合的 C# 代碼範例。在這個範例中,我們將使用 Refit 從一個虛構的 RESTful API 檢索數據,並使用 IronPDF 根據這些數據創建一個 PDF 文件。以下是代碼的運作方式:

using System;
using IronPdf;
using Refit;
    public static async Task Main(string[] args)
    {
        var apiClient = RestService.For<IMyApi>("https://api.example.com");
        try
        {
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        GeneratePdf(user);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        var rand = new Random(100);
        // Create a new user
        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}");
        }
    }
//Passing html string as method parameter
public static void GeneratePdf(User user)
{
    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 IronPdf;
using Refit;
    public static async Task Main(string[] args)
    {
        var apiClient = RestService.For<IMyApi>("https://api.example.com");
        try
        {
        // Use the API client to make requests
        var user = await apiClient.GetUserAsync(1);
        GeneratePdf(user);
        Console.WriteLine($"User ID: {user.Id}, Name: {user.Name}");
        var rand = new Random(100);
        // Create a new user
        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}");
        }
    }
//Passing html string as method parameter
public static void GeneratePdf(User user)
{
    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}");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

使用 Refit 特性,我們構建了一個名為 IMyApi 的 API 介面,並提供抓取使用者資料的端點。我們為該 API 構建一個 Refit 客戶端,並在主函式中非同步地檢索使用者資料。在成功檢索資料的情況下,使用者對象會被傳遞給 GeneratePdf 方法。利用 IronPDF 的 ChromePdfRenderer 類,我們創建 HTMLGeneratePdf方法中表示使用者詳細資料的文本,然後將其輸出為PDF文件。之後,創建的PDF將存儲在磁盤文件中。

Refit C#(開發者如何運作):圖 7 - 主控台輸出

以下是生成的 PDF 文件的截圖。

Refit C#(對開發人員的作用):圖 8 - 使用 IronPDF 生成的輸出 PDF

結論

總而言之,使用 RESTful APIs 和 PDF 生成的開發者們擁有一個強大且有效的解決方案,那就是 重構與...的整合 IronPDF 在 C# 中,Refit 介面減少了樣板代碼,提升了可維護性,並提供了一種型別安全的聲明式方法,使消費 API 變得更加簡單。然而,IronPDF 提供了大量用於生成、修改和處理 PDF 文檔的工具,這使得從 HTML 文本創建高質量的 PDF 變得非常簡單。

開發人員可以輕鬆從 API 檢索數據 重構 並建立動態 PDF 文件與 IronPDF 根據這些數據整合這兩個工具。這一整合精簡了工作流程,也為創建動態、數據驅動的 PDF 報告、發票和其他基於文檔的輸出創造了大量機會。

您可以整合 IronPDF 和其他 IronSoftware 將這些技術整合到您的企業應用程式開發堆疊中,以提供功能豐富的高端軟體解決方案給客戶和終端用戶。這個穩固的基礎也將使項目、後端系統和流程增強變得更加容易。

開發人員可以充分利用 免費試用 IronPDF 的費用是 $749。由於其廣泛的文件記錄、活躍的線上開發者社群和定期更新,這些技術是現代軟體開發項目的絕佳選擇。

若要了解更多如何開始 IronPDF,請訪問 程式碼範例文檔 頁面。

< 上一頁
CSLA .NET (如何運作給開發人員)
下一個 >
NBuilder .NET(其工作原理對開發者)

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >