برنامه نویسی

با نام va Typed HttpClient haqida – DEV Community

در ASP.NET Core، HttpClient به طور گسترده ای برای ارسال درخواست های HTTP استفاده می شود. با HttpClientFactory می‌توانیم به‌طور مؤثر مدیریت درخواست‌های HTTP را کنترل کنیم. مفاهیم Named و Typed HttpClient در این فرآیند مهم هستند. این مقاله به جزئیات ماهیت، مزایا و تفاوت‌های بین این دو رویکرد می‌پردازد.

HttpClient نام دارد

به نام HttpClient – bu malum bir nom bilan belgilangan وا qayta foydalanish HttpClient برای پیکربندی شده است. به هر نام می توان یک پیکربندی منحصر به فرد اختصاص داد.

چگونه کار می کند؟

1) AddHttpClient ما HttpClient نامگذاری شده را با استفاده از روش پیکربندی می کنیم.
2) IHttpClientFactory می توانید با تعیین نام از طریق، HttpClient مربوطه را دریافت کنید.

یک مثال

1) پیکربندی:

services.AddHttpClient("GitHub", client =>
{
    client.BaseAddress = new Uri("https://api.github.com/");
    client.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactoryExample");
});
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2) استفاده:

public class MyService(IHttpClientFactory clientFactory)
{

    public async Task GetGitHubDataAsync()
    {
        var client = clientFactory.CreateClient("GitHub");
        var response = await client.GetAsync("/repos/dotnet/runtime");

        if (response.IsSuccessStatusCode)
        {
            return await response.Content.ReadAsStringAsync();
        }

        return null;
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مزایا
چندین HttpClient که در یک مکان پیکربندی شده اند به راحتی مدیریت می شوند. امکان پیاده سازی پیکربندی های مختلف در یک پایگاه کد برای API های مختلف. امکان پیکربندی مجدد HttpClient که با همین نام استفاده می شود.


HttpClient را تایپ کرد

HttpClient – bu را تایپ کرد ma'lum bir xizmat یا API با کلاس های قوی تایپ شده که مخصوصا برای آنها نوشته شده است کار می کند با این رویکرد، یک پیکربندی HttpClient جداگانه برای هر سرویس انجام می شود.

چگونه کار می کند؟

1) ما HttpClient را برای کلاس سرویس با استفاده از AddHttpClient پیکربندی می کنیم.
2) ما روش هایی را برای برقراری ارتباط با API با استفاده از HttpClient در خود کلاس Service ارائه می دهیم.

یک مثال

کلاس HttpClient را تایپ کردید:

public class GitHubClient
{
    private readonly HttpClient _httpClient;

    public GitHubClient(HttpClient httpClient)
    {
        _httpClient = httpClient;
        _httpClient.BaseAddress = new Uri("https://api.github.com/");
        _httpClient.DefaultRequestHeaders.Add("User-Agent", "HttpClientFactoryExample");
    }

    public async Task GetRepositoryDataAsync()
    {
        var response = await _httpClient.GetAsync("/repos/dotnet/runtime");

        if (response.IsSuccessStatusCode)
        {
            return await response.Content.ReadAsStringAsync();
        }

        return null;
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

1) پیکربندی:

services.AddHttpClient();
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

2) استفاده:

public class MyService(GitHubClient gitHubClient)
{

    public async Task GetGitHubDataAsync()
    {
        return await gitHubClient.GetRepositoryDataAsync();
    }
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

مزایا

جداسازی پیکربندی و ارتباطات API از منطق تجاری. کار از طریق یک کلاس متمرکز بر خدمات خاص. شانس بالا برای تمسخر کلاس

HttpClient نامگذاری و تایپ شده: مقایسه

ویژگی HttpClient نام دارد HttpClient را تایپ کرد
روش پیکربندی با نام تعریف شده است توسط یک کلاس خاص تعریف شده است
استفاده مجدد پیکربندی با همین نام خدمات خاص، استفاده خاص
سهولت تست مسخره کردنش سخت تره مسخره کردن آسان
انعطاف پذیری مناسب برای بسیاری از تنظیمات هدف قرار گرفته است

کدام یک چه زمانی باید استفاده شود؟

با نام HttpClient: اگر نیاز به استفاده از پیکربندی یکسان برای نقاط انتهایی API مختلف داشته باشیم و در بسیاری از مکان‌ها به پیکربندی یکسانی نیاز است.
HttpClient را تایپ کردید: اگر برای کار با یک API خاص نیاز به ایجاد یک سرویس سفارشی دارید و نیاز به کپسوله کردن سرویس و سهولت تست دارید.

خلاصه

HttpClient های نامگذاری شده و تایپ شده رسیدگی به درخواست های HTTP را در برنامه های ASP.NET Core شما آسان می کند. اگر با یک API کار می کنید که نیاز به پیکربندی کلی دارد، Named HttpClient راحت تر است. اما برای پیکربندی‌های مستقل و اختصاصی سرویس، استفاده از Typed HttpClient ترجیح داده می‌شود. هر دو به مدیریت موثر اتصالات با استفاده از قابلیت های HttpClientFactory کمک می کنند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا