.NET 幫助

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

發佈 2024年8月13日
分享:

介紹

將兩個強大庫的最佳功能結合起來,可通過整合生成極其有效的應用程式。重構IronPDF在 C# 中。 Refit 透過讓開發者使用 C# 特性設計 API 介面,生成,使得使用 RESTful API 更加容易。超文本傳輸協定自動發送請求,並保證類型安全的 API 訪問。 相反地,IronPDF 提供多種強大的功能來處理 PDF 檔案,包括合併和註釋 PDF,以及轉換 HTML 內容。 這些庫在結合使用時為數據呈現和檢索提供了流暢的工作流程。 透過使用像 Refit 這樣的工具從 API 獲取數據,以及使用 IronPDF 根據這些數據生成詳細且優秀的 PDF 報告,可以使數據驅動的應用程式開發變得更加高效和富有成效。

什麼是 Ref​​it C#?

重構是一個適用於.NET的開源框架,採用聲明式、類型安全的方法來簡化向RESTful API發送HTTP請求的過程。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 Framework。 然後點擊「Create」來建立主控台應用程式專案。

重架 C#(開發者如何使用):圖 4 - 選擇 .NET Framework,然後點擊「建立」。 您的控制台應用程式項目將成功創建。

安裝 Refit

必須先在您的專案中包含Refit庫。 您可以使用 NuGet 封裝管理器安裝 Refit NuGet Package,或者使用 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 讓您可以使用包括 CSS 和 JavaScript 在內的 HTML 內容創建高品質的 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 類別,我們創建HTML 內容轉換為 PDFGeneratePdf 方法中表示使用者詳細資訊的文本,然後將其輸出為 PDF 文件。 之後,創建的 PDF 會儲存在磁碟檔案中。

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

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

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

結論

總而言之,從事RESTful API和PDF生成的開發者可以使用一種強大且有效的解決方案,即重構與...的整合IronPDF在 C# 中。 Refit 介面減少樣板代碼,提高可維護性,並提供一種型安全、聲明式的方法,使使用 API 變得更加容易。然而,IronPDF 提供了廣泛的工具集合,用於生成、修改和處理 PDF 文件,使其可以輕鬆地從 HTML 文本創建高質量的 PDF。

開發人員可以輕鬆地使用從 API 檢索數據重構並建立動態 PDF 文件與IronPDF通過整合這兩個工具,基於該數據。 透過這項整合,工作流程得以簡化,並創造出多種機會來製作動態、數據驅動的 PDF 報告、發票及其他基於文件的輸出。

您可以整合IronPDF和其他IronSoftware 技術到您的企業應用開發堆疊中,以為客戶和最終用戶提供功能豐富的高端軟體解決方案。 這個堅實的基礎也將使專案、後端系統和流程改進更加輕鬆。

開發人員可以充分利用免費試用IronPDF 的費用是 $749。這些技術憑藉其豐富的文檔、活躍的在線開發者社群和定期更新,是現代軟體開發專案的絕佳選擇。

了解有關如何開始的更多資訊IronPDF,請訪問HTML 轉 PDF 的程式碼範例綜合文檔頁面。

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

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

免費 NuGet 下載 總下載次數: 11,622,374 查看許可證 >