با نام 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 کمک می کنند.