این دوره به شما میآموزد که چگونه با استفاده از HttpClient در دات نت با APIها یکپارچه شوید.
آنچه یاد خواهید گرفت:
یکپارچهسازی با وب API یک کار رایج است که توسط بسیاری از برنامهها مورد نیاز است. در این دوره آموزشی، دسترسی به APIها با استفاده از HttpClient در NET 6. یاد خواهید گرفت که برنامههای NET خود را با یک API یکپارچه کنید.
ابتدا، داخلیهای HttpClient و تعامل اولیه CRUD را بررسی خواهید کرد.
سپس، شما` نحوه کار با جریانها، مصرف نقطه پایانی API جریان، کار با فشردهسازی و نحوه لغو درخواستهایی که دیگر مورد نیاز نیستند را کشف خواهید کرد. در نهایت، یاد خواهید گرفت که چگونه قابلیت اطمینان درخواستهای خود را بهبود ببخشید و چگونه HttpClient را با کنترل کنندههای سفارشی گسترش دهید. پس از اتمام این دوره، مهارتها و دانش استفاده از HttpClient را خواهید داشت که برای ادغام برنامه دات نت خود با یک API لازم است.
نمونه ویدیوی آموزشی ( زیرنویسها جدا از ویدیو است و میتوانید آنرا نمایش ندهید ) :
[ENGLISH]
01 Course Overview [2mins]
01-01 Course Overview [2mins]
02 Understanding Integration with an API Using HttpClient [40mins]
02-01 Version Check [1mins]
02-02 Coming Up [1mins]
02-03 Course Prerequisites [1mins]
02-04 Frameworks and Tooling [2mins]
02-05 Introducing the Demo Application [1mins]
02-06 Demo: Introducing the Demo Application [6mins]
02-07 Strategies for Working with DTO Model Classes [3mins]
02-08 Generating DTO Classes [2mins]
02-09 Demo: Generating DTO Classes from Visual Studio [6mins]
02-10 Demo: Generating DTO Classes with NSWagStudio [7mins]
02-11 Tackling Integration with HttpClient [8mins]
02-12 Summary [2mins]
03 Handling Common Types of Integration (CRUD) [48mins]
03-01 Coming Up [1mins]
03-02 Demo: Getting a Resource [12mins]
03-03 Working with Headers and Content Negotiation [4mins]
03-04 Demo: Manipulating Request Headers [4mins]
03-05 Indicating Preference with the Relative Quality Parameter [1mins]
03-06 Demo: Indicating Preference with the Relative Quality Parameter [2mins]
03-07 Demo: Working With HttpRequestMessage Directly [3mins]
03-08 Demo: Providing Default Values for HttpClient and JsonSerializerOptions [6mins]
03-09 Demo: Creating a Resource [4mins]
03-10 Setting Request Headers [2mins]
03-11 Inspecting Content Types [1mins]
03-12 Demo: Updating a Resource [2mins]
03-13 Demo: Deleting a Resource [1mins]
03-14 Demo: Using Shortcuts [2mins]
03-15 Summary [3mins]
04 Integrating with a Partial Update Endpoint [19mins]
04-01 Coming Up [1mins]
04-02 Introducing Json Patch [5mins]
04-03 System.Text.Json Versus Json.NET [3mins]
04-04 Demo: Partially Updating Resources [6mins]
04-05 Demo: Partially Updating Resources with PatchAsync [2mins]
04-06 Advanced Patch Scenarios [1mins]
04-07 Summary [1mins]
05 Using HttpClientFactory for HttpClient Instance Management [28mins]
05-01 Coming Up [1mins]
05-02 The Problem with Disposing HttpClient Instances (Part 1) [2mins]
05-03 Demo: The Problem with Disposing HttpClient Instances [4mins]
05-04 The Problem with Disposing HttpClient Instances (Part 2) [1mins]
05-05 Introducing HttpClientFactory [3mins]
05-06 Using HttpClientFactory to Manage HttpClient Instances [2mins]
05-07 Demo: Configuring HttpClients [5mins]
05-08 Demo: Using Typed HttpClient Instances [3mins]
05-09 Demo: Using Typed Instances with Type-scoped Configuration [1mins]
05-10 Demo: Extending Typed Instances with Interaction Methods [4mins]
05-11 Summary [2mins]
06 Improving Performance and Memory Use with Streams [29mins]
06-01 Coming Up [1mins]
06-02 Advantages of Working with Streams [4mins]
06-03 Using Streams When Reading Data [1mins]
06-04 Demo: Using Streams When Reading Data [4mins]
06-05 Improving Memory Use and Performance with HttpCompletionMode [1mins]
06-06 Demo: Improving Memory Use and Performance with HttpCompletionMode [2mins]
06-07 Demo: Testing Performance Improvements When Getting Data [4mins]
06-08 Using Streams When Sending Data [1mins]
06-09 Demo: Using Streams When Sending Data [4mins]
06-10 Using Streams When Sending and Reading Data [0mins]
06-11 Demo: Combining Streams When Sending and Reading Data [1mins]
06-12 Demo: Testing Performance Improvements When Posting Data [3mins]
06-13 On Streams, Memory Use, and Performance [2mins]
06-14 Summary [1mins]
07 Integrating with an API that Supports Streaming [9mins]
07-01 Coming Up [1mins]
07-02 A Few Words on Supporting Streaming [3mins]
07-03 Demo: Integrating with a Streaming API Endpoint [4mins]
07-04 Summary [1mins]
08 Supporting Compression [11mins]
08-01 Coming Up [0mins]
08-02 A Few Words on Supporting Compression [2mins]
08-03 Demo: Working with Compression When Getting Data [4mins]
08-04 Demo: Working with Compression When Sending Data [4mins]
08-05 Summary [1mins]
09 Supporting Cancellation [15mins]
09-01 Coming Up [1mins]
09-02 Why Cancelling Requests Is Important [2mins]
09-03 CancellationTokenSource and CancellationToken [2mins]
09-04 Demo: Cancelling a Request [3mins]
09-05 Demo: Initialization of a CancellationTokenSource [2mins]
09-06 Demo: Handling a Cancelled Request [2mins]
09-07 Demo: Dealing with Timeouts [2mins]
09-08 Summary [1mins]
10 Handling Faults and Errors, and Improving Resilience with Polly [23mins]
10-01 Coming Up [1mins]
10-02 Inspecting Status Codes [4mins]
10-03 Demo: Inspecting Status Codes [5mins]
10-04 Inspecting Response Messages [1mins]
10-05 Demo: Reading Out the Response Body When Streaming [6mins]
10-06 Improving Reliability and Resilience with Polly [2mins]
10-07 Demo: Improving Reliability and Resilience with Polly [3mins]
10-08 Summary [1mins]
11 Extending HttpClient with Custom HttpMessageHandlers [19mins]
11-01 Coming Up [1mins]
11-02 Delegating Handler Pattern [1mins]
11-03 Implementing a Retry Policy [0mins]
11-04 Demo: Implementing a Retry Policy with a Custom Delegating Handler [7mins]
11-05 Unit Testing with HttpClient [1mins]
11-06 Demo: Implementing a Custom Handler to Enable Unit Testing [3mins]
11-07 Demo: Using a Custom Handler in a Unit Test [3mins]
11-08 Additional Use Cases [1mins]
11-09 Summary [2mins]
[فارسی]
01 بررسی اجمالی دوره [2 دقیقه]
01-01 بررسی اجمالی دوره [2 دقیقه]
02 درک ادغام با یک API با استفاده از HttpClient [40 دقیقه]
02-01 بررسی نسخه [1 دقیقه]
02-02 در راه است [1 دقیقه]
02-03 پیش نیازهای دوره [1 دقیقه]
02-04 چارچوب و ابزار [2 دقیقه]
02-05 معرفی برنامه آزمایشی [1 دقیقه]
02-06 نسخهی نمایشی- معرفی برنامه آزمایشی [6 دقیقه]
02-07 استراتژیهای کار با کلاسهای مدل DTO [3 دقیقه]
02-08 ایجاد کلاسهای DTO [2 دقیقه]
02-09 نسخهی نمایشی- ایجاد کلاسهای DTO از ویژوال استودیو [6 دقیقه]
02-10 نسخهی نمایشی- ایجاد کلاسهای DTO با NSWagStudio [7 دقیقه]
02-11 مقابله با ادغام با HttpClient [8 دقیقه]
02-12 خلاصه [2 دقیقه]
03 مدیریت انواع رایج ادغام (CRUD) [48 دقیقه]
03-01 در راه است [1 دقیقه]
03-02 نسخهی نمایشی- دریافت منبع [12 دقیقه]
03-03 کار با سرصفحهها و مذاکره محتوا [4 دقیقه]
03-04 نسخهی نمایشی- دستکاری سرصفحههای درخواست [4 دقیقه]
03-05 نشان دادن اولویت با پارامتر کیفیت نسبی [1 دقیقه]
03-06 نسخهی نمایشی- نشان دادن اولویت با پارامتر کیفیت نسبی [2 دقیقه]
03-07 نسخهی نمایشی- کار با HttpRequestMessage به طور مستقیم [3 دقیقه]
03-08 نسخهی نمایشی- ارائه مقادیر پیش فرض برای HttpClient و JsonSerializerOptions [6 دقیقه]
03-09 نسخهی نمایشی- ایجاد یک منبع [4 دقیقه]
03-10 تنظیم هدر درخواست [2 دقیقه]
03-11 بررسی انواع محتوا [1 دقیقه]
03-12 نسخهی نمایشی- به روز رسانی یک منبع [2 دقیقه]
03-13 نسخهی نمایشی- حذف یک منبع [1 دقیقه]
03-14 نسخهی نمایشی- استفاده از میانبرها [2 دقیقه]
03-15 خلاصه [3 دقیقه]
04 ادغام با نقطه پایانی به روز رسانی جزئی [19 دقیقه]
04-01 در راه است [1 دقیقه]
04-02 معرفی Json Patch [5 دقیقه]
04-03 System.Text.Json در مقابل Json.NET [3 دقیقه]
04-04 نسخهی نمایشی- به روز رسانی جزئی منابع [6 دقیقه]
04-05 نسخهی نمایشی- به روز رسانی جزئی منابع با PatchAsync [2 دقیقه]
04-06 سناریوهای پچ پیشرفته [1 دقیقه]
04-07 خلاصه [1 دقیقه]
05 استفاده از HttpClientFactory برای مدیریت نمونه HttpClient [28 دقیقه]
05-01 در راه است [1 دقیقه]
05-02 مشکل از بین بردن موارد HttpClient (قسمت 1) [2 دقیقه]
05-03 نسخهی نمایشی- مشکل دفع نمونههای HttpClient [4 دقیقه]
05-04 مشکل از بین بردن نمونههای HttpClient (قسمت 2) [1 دقیقه]
05-05 معرفی HttpClientFactory [3 دقیقه]
05-06 استفاده از HttpClientFactory برای مدیریت موارد HttpClient [2 دقیقه]
05-07 نسخهی نمایشی- پیکربندی HttpClients [5 دقیقه]
05-08 نسخهی نمایشی- استفاده از نمونههای HttpClient تایپ شده [3 دقیقه]
05-09 نسخهی نمایشی- استفاده از نمونههای تایپ شده با پیکربندی محدوده نوع [1 دقیقه]
05-10 نسخهی نمایشی- گسترش نمونههای تایپ شده با روشهای تعامل [4 دقیقه]
05-11 خلاصه [2 دقیقه]
06 بهبود عملکرد و استفاده از حافظه با استریم [29 دقیقه]
06-01 در راه است [1 دقیقه]
06-02 مزایای کار با استریم [4 دقیقه]
06-03 استفاده از جریان در هنگام خواندن داده [1 دقیقه]
06-04 نسخهی نمایشی- استفاده از جریان در هنگام خواندن دادهها [4 دقیقه]
06-05 بهبود استفاده و عملکرد حافظه با HttpCompletionMode [1 دقیقه]
06-06 نسخهی نمایشی- بهبود استفاده و عملکرد حافظه با HttpCompletionMode [2 دقیقه]
06-07 نسخهی نمایشی- آزمایش بهبود عملکرد هنگام دریافت داده [4 دقیقه]
06-08 استفاده از جریان در هنگام ارسال داده [1 دقیقه]
06-09 نسخهی نمایشی- استفاده از جریان در هنگام ارسال داده [4 دقیقه]
06-10 استفاده از جریان در هنگام ارسال و خواندن داده [0 دقیقه]
06-11 نسخهی نمایشی- ترکیب جریانها هنگام ارسال و خواندن دادهها [1 دقیقه]
06-12 نسخهی نمایشی- آزمایش بهبود عملکرد هنگام ارسال دادهها [3 دقیقه]
06-13 در جریان، استفاده از حافظه و عملکرد [2 دقیقه]
06-14 خلاصه [1 دقیقه]
07 ادغام با یک API که از جریان پشتیبانی میکند [9 دقیقه]
07-01 در راه است [1 دقیقه]
07-02 چند کلمه در مورد پشتیبانی از جریان [3 دقیقه]
07-03 نسخهی نمایشی- ادغام با یک نقطه پایانی API جریانی [4 دقیقه]
07-04 خلاصه [1 دقیقه]
08 پشتیبانی از فشردهسازی [11 دقیقه]
08-01 در راه است [0 دقیقه]
08-02 چند کلمه در مورد پشتیبانی از فشردهسازی [2 دقیقه]
08-03 نسخهی نمایشی- کار با فشردهسازی هنگام دریافت داده [4 دقیقه]
08-04 نسخهی نمایشی- کار با فشردهسازی هنگام ارسال داده [4 دقیقه]
08-05 خلاصه [1 دقیقه]
09 پشتیبانی از لغو [15 دقیقه]
09-01 در راه است [1 دقیقه]
09-02 چرا لغو درخواستها مهم است [2 دقیقه]
09-03 CancellationTokenSource و CancellationToken [2 دقیقه]
09-04 نسخهی نمایشی- لغو یک درخواست [3 دقیقه]
09-05 نسخهی نمایشی- راه اندازی یک CancellationTokenSource [2 دقیقه]
09-06 نسخهی نمایشی- رسیدگی به درخواست لغو شده [2 دقیقه]
09-07 نسخهی نمایشی- مقابله با وقفهها [2 دقیقه]
09-08 خلاصه [1 دقیقه]
10 مدیریت خطاها و خطاها و بهبود انعطاف پذیری با پولی [23 دقیقه]
10-01 در راه است [1 دقیقه]
10-02 بازرسی کدهای وضعیت [4 دقیقه]
10-03 نسخهی نمایشی- بازرسی کدهای وضعیت [5 دقیقه]
10-04 بازرسی پیامهای پاسخ [1 دقیقه]
10-05 نسخهی نمایشی- خواندن متن پاسخ هنگام پخش جریانی [6 دقیقه]
10-06 بهبود قابلیت اطمینان و انعطاف پذیری با پولی [2 دقیقه]
10-07 نسخهی نمایشی- بهبود قابلیت اطمینان و انعطاف پذیری با پولی [3 دقیقه]
10-08 خلاصه [1 دقیقه]
11 گسترش HttpClient با HttpMessageHandlers سفارشی [19 دقیقه]
11-01 در راه است [1 دقیقه]
11-02 تفویض اختیار الگوی کنترل کننده [1 دقیقه]
11-03 اجرای خط مشی تلاش مجدد [0 دقیقه]
11-04 نسخهی نمایشی- اجرای یک خط مشی تلاش مجدد با یک کنترل کننده واگذاری سفارشی [7 دقیقه]
11-05 تست واحد با HttpClient [1 دقیقه]
11-06 نسخهی نمایشی- پیادهسازی یک هندلر سفارشی برای فعال کردن تست واحد [3 دقیقه]
11-07 نسخهی نمایشی- استفاده از یک هندلر سفارشی در تست واحد [3 دقیقه]
11-08 موارد استفاده اضافی [1 دقیقه]
11-09 خلاصه [2 دقیقه]
کوین داکس یک معمار راه حل آزاد، نویسنده و مشاور است که در آنتورپ (بلژیک) زندگی میکند. او عمدتاً بر روی معماری راهحل/برنامهها و امنیت برای برنامههای مبتنی بر وب (API) که با داتنت ساخته شدهاند، متمرکز است، اما او همچنین چشمانداز پیشرفتهای جدید مربوط به محصولات دیگر از پشته داتنت است. او MVP مایکروسافت و عضو هیئت مدیره انجمن RD MS است. او همچنین یک سخنران منظم در کنفرانسهای مختلف (بینالمللی) ملی و رویدادهای گروه کاربر است و روی پروژههای متن باز مختلف مانند Microsoft.AspNet.JsonPatch و Marvin.Cache.Headers کار میکند. کوین دوست دارد به جاهایی که قبلا ندیده سفر کند و در جمع چند دوست خوب از یک لیوان شراب خوب لذت میبرد.