.NET ヘルプ

Flurl C# (開発者のための仕組み)

公開済み 2024年8月13日
共有:

イントロダクション

C#の開発に関しては、強力なライブラリを組み込むことで、出力と能力を大幅に向上させることができます。 そのようなライブラリとして、FlurlとIronPDFまた、プログラマーがPDFを作成したり、オンラインAPIとやり取りしたりするための強力なツールを提供します。

Flurlは、C#でHTTPリクエスト、API、APIエンドポイントをより簡単に扱うための、流動的で表現力豊かな構文を提供します。 HTTPリクエストの送信、それに対するレスポンス、クエリーパラメーターやヘッダーの管理は、簡素化された雑用のほんの一部に過ぎない。 開発者はFlurlを使って、読みやすく整理されたコードを書きながら、認証の管理、JSONのシリアライズとデシリアライズ、Web APIの利用を迅速かつ効率的に行うことができます。

開発者はFlurlの使いやすさと多様性をIronPDFと組み合わせて活用することで、Web APIと接続し、データを取得し、IronPDFに簡単に統合することで、詳細で準備の整ったPDFドキュメントを作成することができます。 この統合により、プログラマーは、オンラインサービスから取得したリアルタイムのデータを使用して文書作成を自動化することにより、生産性とユーザーエクスペリエンスを向上させる複雑なアプリケーションを設計することができます。

このイントロダクションでは、FlurlとIronPDFをC#プログラムの中でどのように使い、どのように組み合わせるかを見ていきます。

フラール](https://flurl.dev/) C#とは?

Flurlは、HTTPリクエストを管理し、オンラインAPIと通信するための堅牢でユーザーフレンドリーなC#ライブラリです。コードの可読性と保守性を向上させ、RESTful APIとのやりとりの複雑さを軽減する、流動的で連鎖可能な構文を提供します。開発者はFlurlを使用することで、HTTPリクエストの作成と送信、レスポンスのわかりやすい処理、クエリパラメータ、ヘッダ、ペイロードの管理を簡単に行うことができます。

Flurlの最も顕著な特徴の1つは、URLの構築を動的に管理する機能であり、実行時の状況に応じてURLを簡単に作成・変更することができ、スタンドアロンのURLビルダーとしても使用することができます。 JSONデータのシリアライズとデシリアライズを強力にサポートし、GET、POST、PUT、DELETEなどの一般的なHTTP機能をサポートしています。さらに、Flurlにはフォームデータやクエリパラメータを管理する機能が組み込まれており、様々なAPI統合シナリオに適応することができます。

流れるようなインターフェイス

Flurlが提供する流暢で連鎖可能な構文は、プログラムの可読性と保守性を向上させます。 開発者は、シンプルで表現力豊かなHTTPリクエストを作成し、URL、クエリーパラメーター、ヘッダー、ペイロードを扱うことができる。

HTTPメソッドのサポート

GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONSを含むすべての標準HTTPメソッドがサポートされている。 開発者は、この包括的なサポート・アプローチのおかげで、ウェブAPIを扱う際に様々なタスクを達成することができる。

クエリ・パラメータの処理

FlurlはURL内のクエリパラメータを簡単に変更、追加、削除することができます。 ユーザーの入力や実行時の状況に応じて、動的なURLを簡単に作成できる。

JSONサポート

FlurlはJSONデータのハンドリングをネイティブでサポートしています。 JSONレスポンスを簡単にC#オブジェクトにデシリアライズし、リクエストペイロードのためにオブジェクトをJSONにシリアライズすることができる。 このため、JSONベースのAPIの活用はシンプルで簡単だ。

フォームデータとマルチパートのサポート

マルチパートリクエストやフォームデータの管理が簡単になります。 Flurlを使えば、HTTPリクエストにmultipart/form-dataペイロードやフォームエンコードされたデータを簡単に含めることができます。

エラー処理と再試行ポリシー

Flurlは全てのHTTPコールに対してリトライポリシー定義とエラー処理機能を提供します。 独自のエラー処理ロジックやリトライ技術を定義することで、開発者はAPIコールとインタラクションの回復力と信頼性を高めることができる。 また、匿名オブジェクトがレスポンスでエラーを引き起こすのを防ぎ、開発者を支援します。

認証

OAuth、カスタム認証スキーム、Basic認証、APIキーなど、ウェブAPI用の一般的な認証方法をいくつかサポートしている。 これにより、認証が必要なAPIとの安全な通信が保証される。

テストサポート

FlurlはHTTP関連のロジックを再利用可能なコンポーネントに分離し、関係性を明確に分離することで、テスタビリティを高めています。 これにより、APIインタラクションのユニットテストを書くのが簡単になる。

構成の柔軟性

HTTPクライアントとリクエスト・パラメーターに柔軟な設定を提供する。 開発者は、特定のアプリケーションやAPIの制限のニーズに合わせて、クライアントの動作、タイムアウト、エラー・レスポンス量、ヘッダー、その他の設定を変更することができる。

拡張性

プラグイン用のフレームワークがあるため、Flurlは非常に拡張性が高い。 開発者は、独自の拡張機能を構築したり、サードパーティのプラグインを組み込んで機能を増やすことで、プラットフォームの機能性を高めることができる。

Flurl c&numの作成と設定;

C#プロジェクトでFlurlを構築・設定する手順は以下の通りです:

新しいVisual Studioプロジェクトを作成する

Visual Studioでコンソール・プロジェクトを作成するのは簡単だ。 Visual Studio環境でコンソール・アプリケーションを起動するには、以下の簡単な手順に従います:

使用する前に、Visual Studioがコンピュータにインストールされていることを確認してください。

新しいプロジェクトを開始

ファイル]、[プロジェクト]の順に選択し、[新規]オプションを選択する。

Flurl C#(開発者のための仕組み):図1 - [新規作成] オプションをクリックする

コンソールアプリ」または「コンソールアプリ」のいずれか(.NET Core(ドットネット コア))" テンプレートは、以下のプロジェクト・テンプレート・リファレンスのリストから選択できます。

プロジェクト名を「名前」フォームにご記入ください。

Flurl C#(開発者のための仕組み):図2 - 名前と場所を指定する

プロジェクトの保管場所を決める。

Create」をクリックすると、コンソールアプリケーションのプロジェクトが開きます。

Flurl C#(開発者のための仕組み):図3 - [作成]をクリックします;

Flurl.Httpパッケージのインストール

最初のステップは、NuGet Package Manager Console または Visual Studio の NuGet Package Manager を使用して Flurl.Http パッケージをインストールすることです。

Install-Package Flurl.Http
Install-Package Flurl.Http
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

FlurlClientコンフィギュレーションの作成

FlurlはFlurlClientクラスを提供しており、URLビルダーだけを使って来る全てのHTTPリクエストに対してデフォルトのパラメータを設定することができます。 このオプションのステップは、ベースURLやデフォルトのヘッダーを設定することで実現できる。

using Flurl;
using Flurl.Http;
// Configure a FlurlClient instance with base URL and headers
FlurlClient flurlClient = new FlurlClient("https://api.example.com/");
flurlClient.WithHeader("Authorization", "Bearer YourAccessTokenHere");
using Flurl;
using Flurl.Http;
// Configure a FlurlClient instance with base URL and headers
FlurlClient flurlClient = new FlurlClient("https://api.example.com/");
flurlClient.WithHeader("Authorization", "Bearer YourAccessTokenHere");
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

HTTPリクエストを行う

これでFlurlの流暢なURLを使ってHTTPリクエストを行うことができます。

var response = await "http://localhost:5013/users".GetAsync();
Console.WriteLine(response.ToString());
if (response.ResponseMessage.IsSuccessStatusCode)
{
    var result = await response.ResponseMessage.Content.ReadAsStringAsync();
    Console.WriteLine(result);
}
else
{
    Console.WriteLine($"Error: {response.StatusCode}");
}
var response = await "http://localhost:5013/users".GetAsync();
Console.WriteLine(response.ToString());
if (response.ResponseMessage.IsSuccessStatusCode)
{
    var result = await response.ResponseMessage.Content.ReadAsStringAsync();
    Console.WriteLine(result);
}
else
{
    Console.WriteLine($"Error: {response.StatusCode}");
}
Dim response = await "http://localhost:5013/users".GetAsync()
Console.WriteLine(response.ToString())
If response.ResponseMessage.IsSuccessStatusCode Then
	Dim result = Await response.ResponseMessage.Content.ReadAsStringAsync()
	Console.WriteLine(result)
Else
	Console.WriteLine($"Error: {response.StatusCode}")
End If
VB   C#

Flurl C#(開発者のための仕組み):図4 - コンソール出力の例

ハンドルの反応

意図したフォーマットに基づいて回答内容を管理する(JSON、文字列など。)Flurl の HttpResponseMessageExtensions には ReceiveJson や ReceiveString といった拡張メソッドがあります。

// Handling JSON response
var responseObject = await "https://api.example.com/resource"
    .WithClient(flurlClient)
    .GetJsonAsync<ResponseType>();
// Assuming ResponseType is a class representing the expected JSON structure
Console.WriteLine($"Response: {responseObject.Property}");
// Handling JSON response
var responseObject = await "https://api.example.com/resource"
    .WithClient(flurlClient)
    .GetJsonAsync<ResponseType>();
// Assuming ResponseType is a class representing the expected JSON structure
Console.WriteLine($"Response: {responseObject.Property}");
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

追加設定

クエリパラメータ: クエリパラメータを追加するには、.SetQueryParamsを使用します。()メソッド。 効率化のために、各リクエストが同じ HttpClient インスタンスを使用して実行されるようにします。

**例えば、.WithTimeoutでタイムアウトを設定できます。(TimeSpan.FromSeconds(30)).

エラー処理: 特定のエラーシナリオを処理するには、.OnErrorを使用してください。().

はじめに

リモートAPIからデータを取得し、そのデータを使ってPDFドキュメントを作成する必要がある場合、C#プロジェクトでFlurlとIronPDFを統合すると便利です。 FlurlとIronPDFを使い始めるには、以下の手順に従ってください:

IronPDFとは何ですか?

IronPDFという名前の機能豊富な.NETライブラリは、PDFドキュメントを作成、読み取り、修正するC#プログラムで利用可能です。 このツールを使えば、開発者はHTML、CSS、JavaScriptのコンテンツから、印刷に耐えうる高品質のPDFを素早く生成することができます。 いくつかの重要な機能は、透かし、ヘッダーとフッターの作成、PDFの分割と結合、およびHTMLをPDFに変換する能力を含む。 IronPDFは.NET Frameworkと.NET Coreをサポートしており、様々なアプリケーションでご利用いただけます。

PDFは統合が簡単で、詳細な文書が豊富にあるため、開発者は自分のアプリケーションに簡単に採用することができる。 IronPDFは複雑なレイアウトやスタイルを効率的に処理することで、生成されるPDFがソースHTMLコンテンツに忠実であることを保証します。

Flurl C#(開発者のための仕組み):図5 - IronPDF:C# PDFライブラリ

IronPDFの機能

**HTMLからのPDF生成

JavaScript、HTML、CSSをPDFに変換。 メディアクエリとレスポンシブデザインという2つの最新ウェブ標準をサポートしている。 PDFのレポートや請求書、文書をHTMLやCSSで動的に装飾するのに便利です。

*PDF編集

既存のPDFにテキスト、写真、その他のコンテンツを追加できます。 PDFファイルからテキストや画像を削除することができます。 多数のPDFを1つのファイルにまとめることができます。PDFファイルを複数の用紙に分割することができます。 透かし、注釈、ヘッダー、フッターを含めることができます。

**PDF 変換

Word、Excel、画像ファイルなど、さまざまな種類のファイルをPDF形式に変換。 PDFから画像への変換(PNG、JPEGなど。).

**パフォーマンスと信頼性

高い性能と信頼性は、広範囲に及ぶ文書コレクションを効率的に管理できるため、産業環境において望まれる設計品質である。

IronPDF をインストール

.NETプロジェクトでPDFを扱うために必要なツールを得るには、IronPDFパッケージをインストールしてください。

Install-Package IronPDF
Install-Package IronPDF
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPDF
VB   C#

Flurlを使ってデータを取得し、PDFを生成する

HTTPクエリを実行し、APIからデータを取得するには、Flurlの流暢なAPIを使用します。 これはJSONデータを取得する例である:

using Flurl;
using Flurl.Http;
using IronPdf;
using System;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        try
        {
            var response = await "http://localhost:5013/users/1".GetJsonAsync<User>();
            var id = response?.Id;
            var name = response?.Name;
            Console.WriteLine($"Data fetched successfully: {name}");
            // Generate PDF using IronPDF
            var renderer = new HtmlToPdf();
            string htmlTemplate = $@"
                <html>
                <body>
                    <h1>{id}</h1>
                    <p>{name}</p>
                </body>
                </html>";
            // Generate PDF document from HTML template
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlTemplate);
            // Save or stream the PDF document
            pdfDocument.SaveAs(@"document.pdf");
            Console.WriteLine("PDF document generated successfully.");
        }
        catch (FlurlHttpException ex)
        {
            Console.WriteLine($"HTTP Error: {ex.Message}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
// Example model class for JSON deserialization
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}
using Flurl;
using Flurl.Http;
using IronPdf;
using System;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string[] args)
    {
        try
        {
            var response = await "http://localhost:5013/users/1".GetJsonAsync<User>();
            var id = response?.Id;
            var name = response?.Name;
            Console.WriteLine($"Data fetched successfully: {name}");
            // Generate PDF using IronPDF
            var renderer = new HtmlToPdf();
            string htmlTemplate = $@"
                <html>
                <body>
                    <h1>{id}</h1>
                    <p>{name}</p>
                </body>
                </html>";
            // Generate PDF document from HTML template
            var pdfDocument = renderer.RenderHtmlAsPdf(htmlTemplate);
            // Save or stream the PDF document
            pdfDocument.SaveAs(@"document.pdf");
            Console.WriteLine("PDF document generated successfully.");
        }
        catch (FlurlHttpException ex)
        {
            Console.WriteLine($"HTTP Error: {ex.Message}");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
    }
}
// Example model class for JSON deserialization
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
}
Imports Flurl
Imports Flurl.Http
Imports IronPdf
Imports System
Imports System.Threading.Tasks
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		Try
			Dim response = await "http://localhost:5013/users/1".GetJsonAsync(Of User)()
			Dim id = response?.Id
			Dim name = response?.Name
			Console.WriteLine($"Data fetched successfully: {name}")
			' Generate PDF using IronPDF
			Dim renderer = New HtmlToPdf()
			Dim htmlTemplate As String = $"
                <html>
                <body>
                    <h1>{id}</h1>
                    <p>{name}</p>
                </body>
                </html>"
			' Generate PDF document from HTML template
			Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlTemplate)
			' Save or stream the PDF document
			pdfDocument.SaveAs("document.pdf")
			Console.WriteLine("PDF document generated successfully.")
		Catch ex As FlurlHttpException
			Console.WriteLine($"HTTP Error: {ex.Message}")
		Catch ex As Exception
			Console.WriteLine($"Error: {ex.Message}")
		End Try
	End Function
End Class
' Example model class for JSON deserialization
Public Class User
	Public Property Id() As Integer
	Public Property Name() As String
End Class
VB   C#

Flurlの.GetJsonAsyncを使用する()関数の例では、GET リクエストを送信します。User "をAPIレスポンス構造を表すモデルクラスに、"URL "を実際のAPIエンドポイントに置き換えてください。 HTMLテンプレート(htmlTemplate)にレンダリングできる。PDFドキュメント

(PDFドキュメント)IronPDFのHtmlToPdfクラスを使っています。 この例では、APIから取得したタイトルとボディのデータを使って、HTMLテンプレートを動的に構築している。 ファイルシステム上で、作成されたPDF文書(PDFドキュメント)は指定された場所に保存される。("document.pdf"). 行きたいところに行くには、道を変えればいい。

Flurl C#(開発者のための仕組み):図 6 - コンソール出力の例

ネットワーク障害などの問題に対して、堅牢なエラー処理を提供する。(FlurlHttpException)または一般的な例外(例外)データ取得中またはPDF作成中。 IronPDFを使ってページサイズ、余白、ヘッダー、フッター、その他のPDF設定を変更することができます。 より高度なカスタマイズの可能性については、IronPDFのマナーマニュアルをご覧ください。 APIにHTTPクエリを送信する際は、機密データとアクセストークンが安全に取り扱われるようにする。 APIが要求する適切な認証方法を使用する。

結論

まとめると、C#アプリケーションでIronPDFによるPDF生成とFlurlによるAPIインタラクションを組み合わせることで、動的にデータを取得し、高品質なPDFドキュメントを作成することができます。 その流動的なAPIにより、FlurlライブラリはHTTPリクエストを効率化し、離れたエンドポイントからデータを取得する際に柔軟性と使いやすさを提供します。 さらに、IronPDFはヘッダー、マージン、ページサイズなどの調整機能を提供し、HTMLからPDFフォーマットへの変換を容易にします。

この統合を実施する際には、スピードの最適化、データ・セキュリティ、エラー処理を考慮することも重要だ。 ベストプラクティスに従い、FlurlとIronPDF両方の利点を活用することで、開発者は現代のアプリケーションの要件を満たす、信頼性が高くスケーラブルなソリューションを作成することができます。

IronPDF およびIronSoftware のスイートは、IronSoftwareの非常に柔軟なシステムとスイートとコアサポートを組み合わせることで、追加のオンラインアプリケーションと機能を提供し、より効率的な開発を実現します。

ライセンスの選択肢が明確で、プロジェクトのニーズに特化していれば、開発者はどのモデルが理想的でベストプラクティスなのかを判断しやすくなる。これらの利点により、開発者は、明確で説得力があり、無理なく統合された方法で、さまざまな問題を管理できるようになる。

< 以前
IdentityServer .NET (開発者のための仕組み)
次へ >
NServiceBus C# (開発者のための仕組み)