این دوره به شما یاد میدهد که چگونه با استفاده از مفاهیم عمیق ASP.NET Core 6 یک API واقعاً RESTful بسازید.
آنچه خواهید آموخت:
در این دوره، ASP.NET Core 6 Web API Deep Dive، ما به شما آموزش خواهیم داد که چگونه با استفاده از مفاهیم ASP.NET Core 6 یک API واقعاً RESTful بسازید. ایجاد آن با ایجاد یک وب API معمولی متفاوت است.
نمونه ویدیوی آموزشی ( زیرنویسها جدا از ویدیو است و میتوانید آنرا نمایش ندهید ) :
[ENGLISH]
01 Course Overview [2mins]
01-01 Course Overview [2mins]
02 Getting Started with REST [53mins]
02-01 Coming Up [3mins]
02-02 Course Prerequisites [1mins]
02-03 Frameworks and Tooling [2mins]
02-04 Positioning ASP.NET Core MVC for Building RESTful APIs [4mins]
02-05 Demo- Introducing the Starter Project [7mins]
02-06 Demo- Using Postman and Importing the Example Request Collection [3mins]
02-07 Introducing the REST Architectural Style [7mins]
02-08 Learning what the REST Constraints are About [19mins]
02-09 The Richardson Maturity Model [5mins]
02-10 Summary [2mins]
03 Designing the Outer Facing Contract [61mins]
03-01 Coming Up [1mins]
03-02 Designing the Outer Facing Contract [8mins]
03-03 Revisiting Routing [3mins]
03-04 Demo- Adhering to URI Guidelines [8mins]
03-05 Learning why Status Codes are Important [7mins]
03-06 Demo- Returning Correct Status Codes [8mins]
03-07 Errors, Faults and API Availability [1mins]
03-08 Demo- Handling Faults and Avoiding Exposing Implementation Details [5mins]
03-09 Working With Content Negotiation and Formatters [5mins]
03-10 Demo- Supporting XML [5mins]
03-11 Outer Facing Model vs. Entity Model [3mins]
03-12 Supporting HEAD [1mins]
03-13 Demo- Supporting HEAD [2mins]
03-14 Summary [4mins]
04 Manipulating Resources [99mins]
04-01 Coming Up [2mins]
04-02 Method Safety and Method Idempotency [3mins]
04-03 Demo- Inspecting and Fixing the POST Methods [12mins]
04-04 The Advantages of Applying the ApiController Attribute [5mins]
04-05 Demo- Creating Child Resources Together with a Parent Resource [5mins]
04-06 Demo- Creating a Collection of Resources [6mins]
04-07 Demo- Working with Array Keys and Composite Keys [10mins]
04-08 Demo- Handling POST to a Single Resource [2mins]
04-09 Full Updates (PUT) Versus Partial Updates (PATCH) [7mins]
04-10 Demo- Inspecting a PUT Action [4mins]
04-11 Demo- Supporting Partial Updates with PATCH [12mins]
04-12 Using PUT or PATCH for Creating Resources- Upserting [4mins]
04-13 Demo- Upserting with PUT [5mins]
04-14 Demo- Upserting with PATCH [3mins]
04-15 Considering Destructive Actions [3mins]
04-16 Demo- Supporting OPTIONS [5mins]
04-17 Demo- Inspecting Input Formatters [3mins]
04-18 Http Method Overview by Use Case [5mins]
04-19 Summary [3mins]
05 Validating Data and Reporting Validation Errors [51mins]
05-01 Coming Up [1mins]
05-02 Validation in a RESTful World [5mins]
05-03 Demo- Validating Input With Data Annotations [8mins]
05-04 Validation and the ApiController Attribute [1mins]
05-05 Demo- Customizing Error Messages [1mins]
05-06 Reporting Validation Errors [3mins]
05-07 Demo- Customizing Validation Error Responses [4mins]
05-08 Demo- Validating Input when Updating a Resource with PUT [8mins]
05-09 Demo- Class-level Input Validation with IValidatableObject [5mins]
05-10 Demo- Class-level Input Validation with a Custom Attribute [4mins]
05-11 Demo- Validating Input when Updating a Resource with PATCH [5mins]
05-12 Demo- Returning ValidationProblems from Controller Actions [2mins]
05-13 Demo- Validating Input when Upserting With PATCH [1mins]
05-14 Other Approaches- FluentValidation [1mins]
05-15 Summary [2mins]
06 Supporting Filtering and Searching [23mins]
06-01 Coming Up [1mins]
06-02 Passing Data to the API via Action Parameters [1mins]
06-03 Filtering and Searching [3mins]
06-04 Demo- Filtering Collection Resources [4mins]
06-05 Demo- Searching Through Collection Resources [5mins]
06-06 Deferred Execution [2mins]
06-07 Demo- Grouping Action Parameters Together Into One Object [5mins]
06-08 Summary [2mins]
07 Supporting Paging [29mins]
07-01 Coming Up [1mins]
07-02 Paging Through Collection Resources [2mins]
07-03 Demo- Paging Through Collection Resources [7mins]
07-04 Returning Pagination Metadata [4mins]
07-05 Demo- Improving Reuse with a PagedList- Class [7mins]
07-06 Demo- Returning Pagination Metadata [6mins]
07-07 Summary [2mins]
08 Supporting Sorting [33mins]
08-01 Coming Up [1mins]
08-02 Sorting Collection Resources [3mins]
08-03 Demo- Sorting Collection Resources [6mins]
08-04 Creating a Property Mapping Service [3mins]
08-05 Demo- Creating a Property Mapping Service [6mins]
08-06 Demo- Creating a Reusable ApplySort Method [7mins]
08-07 Demo- Adding OrderBy Clauses to Pagination Links [2mins]
08-08 Demo- Taking Consumer Errors into Account when Sorting [4mins]
08-09 Summary [1mins]
09 Supporting Data Shaping [28mins]
09-01 Coming Up [1mins]
09-02 Data Shaping Resources [2mins]
09-03 Demo- Creating a Reusable Extension Method to Shape Data [6mins]
09-04 Demo- Data Shaping Collection Resources [3mins]
09-05 Demo- Data Shaping Single Resources [7mins]
09-06 Demo- Taking Consumer Errors into Account when Shaping Data [6mins]
09-07 Exploring Additional Options [2mins]
09-08 Summary [1mins]
10 Learning and Implementing HATEOAS [37mins]
10-01 Coming Up [1mins]
10-02 Hypermedia as the Engine of Application State [11mins]
10-03 Demo Introduction- Supporting HATEOAS [2mins]
10-04 Demo- Implementing HATEOAS Support for a Single Resource [6mins]
10-05 Demo- Implementing HATEOAS Support after POSTing [2mins]
10-06 Demo- Implementing HATEOAS Support for a Collection Resource [4mins]
10-07 Using HATEOAS for Pagination Links [1mins]
10-08 Demo- Using HATEOAS for Pagination Links [2mins]
10-09 Demo- Working Towards Self-discoverability with a Root Document [4mins]
10-10 Other Approaches and Options [2mins]
10-11 Summary [2mins]
11 Improving Reliability with Advanced Content Negotiation [49mins]
11-01 Coming Up [1mins]
11-02 Revisiting the Contract Between Client and Server [2mins]
11-03 HATEOAS and Content Negotiation [4mins]
11-04 Demo- HATEOAS and Content Negotiation [6mins]
11-05 Tightening the Contract Between Client and Server with Vendor-specific Media Types [4mins]
11-06 Demo- Working with Vendor-specific Media Types on Output [6mins]
11-07 Using Vendor-specific Media Types on Input [2mins]
11-08 Demo- Working with Vendor-specific Media Types on Input [12mins]
11-09 Demo- Improving Resource Representation Selection with an ActionConstraint [4mins]
11-10 Versioning in a RESTful World [6mins]
11-11 Summary [2mins]
12 Getting Started with Caching Resources [40mins]
12-01 Coming Up [1mins]
12-02 Supporting the Cacheable Constraint [4mins]
12-03 Cache Types in Http Cache [3mins]
12-04 Response Cache Attribute and Middleware [1mins]
12-05 Demo- Adding Cache Headers to the Response [3mins]
12-06 Demo- Adding a Cache Store with the ResponseCaching Middleware [2mins]
12-07 Demo- Using Cache Profiles to Apply the Same Rules to Different Resources [2mins]
12-08 The Expiration Model [7mins]
12-09 The Validation Model [11mins]
12-10 Exploring the Cache-Control Directive [4mins]
12-11 Summary [2mins]
13 Supporting HTTP Cache for ASP.NET Core APIs [31mins]
13-01 Coming Up [1mins]
13-02 Supporting ETags [2mins]
13-03 Demo- Adding Support for Generating ETags [5mins]
13-04 Demo- Global Cache Header Configuration [4mins]
13-05 Demo- Resource-level Cache Header Configuration [3mins]
13-06 Demo- Dealing with Varying Response Representations [3mins]
13-07 Demo- ETags and the Validation Model [5mins]
13-08 Cache Stores and Content Delivery Networks [4mins]
13-09 Cache Invalidation [2mins]
13-10 Summary [2mins]
14 Supporting Concurrency [11mins]
14-01 Coming Up [1mins]
14-02 Supporting Concurrency in a RESTful World [4mins]
14-03 Demo- Supporting Concurrency [5mins]
14-04 Summary [1mins]
[فارسی]
01 بررسی اجمالی دوره [2 دقیقه]
01-01 بررسی اجمالی دوره [2 دقیقه]
02 شروع با REST [53 دقیقه]
02-01 در راه است [3 دقیقه]
02-02 پیش نیازهای دوره [1 دقیقه]
02-03 چارچوب و ابزار [2 دقیقه]
02-04 تعیین موقعیت ASP.NET Core MVC برای ساختن APIهای RESTful [4 دقیقه]
02-05 نسخهی نمایشی- معرفی پروژه شروع [7 دقیقه]
02-06 نسخهی نمایشی- استفاده از پستچی و وارد کردن نمونه درخواست مجموعه [3 دقیقه]
02-07 معرفی سبک معماری REST [7 دقیقه]
02-08 یادگیری محدودیتهای REST درباره چیست [19 دقیقه]
02-09 مدل بلوغ ریچاردسون [5 دقیقه]
02-10 خلاصه [2 دقیقه]
03 طراحی قرارداد نمای بیرونی [61 دقیقه]
03-01 در راه است [1 دقیقه]
03-02 طراحی قرارداد نمای بیرونی [8 دقیقه]
03-03 بازبینی مسیریابی [3 دقیقه]
03-04 نسخهی نمایشی- پیروی از دستورالعملهای URI [8 دقیقه]
03-05 یاد گرفتن چرا کدهای وضعیت مهم هستند [7 دقیقه]
03-06 نسخهی نمایشی- بازگرداندن کدهای وضعیت صحیح [8 دقیقه]
03-07 خطاها، خطاها و در دسترس بودن API [1 دقیقه]
03-08 نسخهی نمایشی- رسیدگی به عیوب و جلوگیری از افشای جزئیات پیادهسازی [5 دقیقه]
03-09 کار با مذاکره محتوا و قالبها [5 دقیقه]
03-10 نسخهی نمایشی- پشتیبانی از XML [5 دقیقه]
03-11 مدل بیرونی در مقابل مدل موجود [3 دقیقه]
03-12 پشتیبانی از HEAD [1 دقیقه]
03-13 نسخهی نمایشی- پشتیبانی از HEAD [2 دقیقه]
03-14 خلاصه [4 دقیقه]
04 دستکاری منابع [99 دقیقه]
04-01 در راه است [2 دقیقه]
04-02 ایمنی روش و عدم توانایی روش [3 دقیقه]
04-03 نسخهی نمایشی- بازرسی و اصلاح روشهای POST [12 دقیقه]
04-04 مزایای استفاده از ویژگی ApiController [5 دقیقه]
04-05 نسخهی نمایشی- ایجاد منابع کودک همراه با منبع والدین [5 دقیقه]
04-06 نسخهی نمایشی- ایجاد مجموعهای از منابع [6 دقیقه]
04-07 نسخهی نمایشی- کار با کلیدهای آرایه و کلیدهای ترکیبی [10 دقیقه]
04-08 نسخهی نمایشی- مدیریت POST به یک منبع واحد [2 دقیقه]
04-09 بهروزرسانیهای کامل (PUT) در مقابل بهروزرسانیهای جزئی (PATCH) [7 دقیقه]
04-10 نسخهی نمایشی- بررسی یک اقدام PUT [4 دقیقه]
04-11 نسخهی نمایشی- پشتیبانی از به روز رسانیهای جزئی با PATCH [12 دقیقه]
04-12 استفاده از PUT یا PATCH برای ایجاد منابع- Upserting [4 دقیقه]
04-13 نسخهی نمایشی- در حال آپلود با PUT [5 دقیقه]
04-14 نسخهی نمایشی- در حال آپلود با PATCH [3 دقیقه]
04-15 در نظر گرفتن اقدامات مخرب [3 دقیقه]
04-16 نسخهی نمایشی- پشتیبانی از OPTIONS [5 دقیقه]
04-17 نسخهی نمایشی- بررسی قالبهای ورودی [3 دقیقه]
04-18 بررسی اجمالی روش Http بر اساس Use Case [5 دقیقه]
04-19 خلاصه [3 دقیقه]
05 اعتبارسنجی دادهها و گزارش خطاهای اعتبارسنجی [51 دقیقه]
05-01 در راه است [1 دقیقه]
05-02 اعتبارسنجی در دنیایی آرام [5 دقیقه]
05-03 نسخهی نمایشی- اعتبارسنجی ورودی با حاشیه نویسی داده [8 دقیقه]
05-04 اعتبار سنجی و ویژگی ApiController [1 دقیقه]
05-05 نسخهی نمایشی- سفارشی کردن پیامهای خطا [1 دقیقه]
05-06 گزارش خطاهای اعتبارسنجی [3 دقیقه]
05-07 نسخهی نمایشی- سفارشی کردن پاسخهای خطای اعتبارسنجی [4 دقیقه]
05-08 نسخهی نمایشی- اعتبارسنجی ورودی هنگام به روز رسانی یک منبع با PUT [8 دقیقه]
05-09 نسخه آزمایشی- اعتبارسنجی ورودی در سطح کلاس با IValidatableObject [5 دقیقه]
05-10 نسخه آزمایشی- اعتبار سنجی ورودی در سطح کلاس با یک ویژگی سفارشی [4 دقیقه]
05-11 نسخهی نمایشی- اعتبارسنجی ورودی هنگام به روز رسانی یک منبع با PATCH [5 دقیقه]
05-12 نسخهی نمایشی- بازگشت مشکلات اعتبارسنجی از اقدامات کنترلر [2 دقیقه]
05-13 نسخه آزمایشی- اعتبارسنجی ورودی هنگام آپلود با PATCH [1 دقیقه]
05-14 روشهای دیگر- Fluent Validation [1 دقیقه]
05-15 خلاصه [2 دقیقه]
06 پشتیبانی از فیلتر و جستجو [23 دقیقه]
06-01 در راه است [1 دقیقه]
06-02 انتقال داده به API از طریق پارامترهای اقدام [1 دقیقه]
06-03 فیلتر کردن و جستجو [3 دقیقه]
06-04 نسخهی نمایشی- فیلتر کردن منابع مجموعه [4 دقیقه]
06-05 نسخهی نمایشی- جستجو از طریق منابع مجموعه [5 دقیقه]
06-06 اجرای معوق [2 دقیقه]
06-07 نسخهی نمایشی- گروهبندی پارامترهای اقدام با هم در یک شی [5 دقیقه]
06-08 خلاصه [2 دقیقه]
07 پشتیبانی از صفحهبندی [29 دقیقه]
07-01 در راه است [1 دقیقه]
07-02 صفحهبندی از طریق منابع مجموعه [2 دقیقه]
07-03 نسخهی نمایشی- صفحهبندی از طریق منابع مجموعه [7 دقیقه]
07-04 برگشت دادههای صفحهبندی [4 دقیقه]
07-05 نسخهی نمایشی- بهبود استفاده مجدد با کلاس PagedList T [7 دقیقه]
07-06 نسخهی نمایشی- ابرداده صفحهبندی برگشتی [6 دقیقه]
07-07 خلاصه [2 دقیقه]
08 پشتیبانی از مرتبسازی [33 دقیقه]
08-01 در راه است [1 دقیقه]
08-02 مرتبسازی منابع مجموعه [3 دقیقه]
08-03 نسخهی نمایشی- مرتبسازی منابع مجموعه [6 دقیقه]
08-04 ایجاد یک سرویس نقشه برداری دارایی [3 دقیقه]
08-05 نسخهی نمایشی- ایجاد یک سرویس نقشه برداری دارایی [6 دقیقه]
08-06 نسخهی نمایشی- ایجاد یک روش ApplySort قابل استفاده مجدد [7 دقیقه]
08-07 نسخهی نمایشی- افزودن بندهای OrderBy به پیوندهای صفحهبندی [2 دقیقه]
08-08 نسخهی نمایشی- در نظر گرفتن خطاهای مصرف کننده هنگام مرتبسازی [4 دقیقه]
08-09 خلاصه [1 دقیقه]
09 پشتیبانی از شکل دهی داده [28 دقیقه]
09-01 در راه است [1 دقیقه]
09-02 منابع شکل دهی داده [2 دقیقه]
09-03 نسخهی نمایشی- ایجاد یک روش پسوند قابل استفاده مجدد برای شکل دادن به دادهها [6 دقیقه]
09-04 نسخهی نمایشی- منابع مجموعه شکل دهی داده [3 دقیقه]
09-05 نسخهی نمایشی- Data Shaping Single Resources [7 دقیقه]
09-06 نسخهی نمایشی- در نظر گرفتن خطاهای مصرف کننده هنگام شکل دادن به دادهها [6 دقیقه]
09-07 کاوش گزینههای اضافی [2 دقیقه]
09-08 خلاصه [1 دقیقه]
10 یادگیری و پیادهسازی HATEOAS [37 دقیقه]
10-01 در راه است [1 دقیقه]
10-02 هایپر مدیا به عنوان موتور حالت برنامه [11 دقیقه]
10-03 معرفی نسخهی نمایشی- پشتیبانی از HATEOAS [2 دقیقه]
10-04 نسخهی نمایشی- اجرای پشتیبانی HATEOAS برای یک منبع واحد [6 دقیقه]
10-05 نسخهی نمایشی- اجرای پشتیبانی HATEOAS پس از ارسال [2 دقیقه]
10-06 نسخهی نمایشی- اجرای پشتیبانی HATEOAS برای یک منبع مجموعه [4 دقیقه]
10-07 استفاده از HATEOAS برای پیوندهای صفحهبندی [1 دقیقه]
10-08 نسخهی نمایشی- استفاده از HATEOAS برای پیوندهای صفحهبندی [2 دقیقه]
10-09 نسخهی نمایشی- کار به سمت خودیابی با سند ریشه [4 دقیقه]
10-10 سایر رویکردها و گزینهها [2 دقیقه]
10-11 خلاصه [2 دقیقه]
11 بهبود قابلیت اطمینان با مذاکره محتوای پیشرفته [49 دقیقه]
11-01 در راه است [1 دقیقه]
11-02 بازبینی قرارداد بین مشتری و سرور [2 دقیقه]
11-03 HATEOAS و مذاکره محتوا [4 دقیقه]
11-04 نسخهی نمایشی- HATEOAS و مذاکره محتوا [6 دقیقه]
11-05 سفت کردن قرارداد بین مشتری و سرور با انواع رسانههای خاص فروشنده [4 دقیقه]
11-06 نسخهی نمایشی- کار با انواع رسانههای خاص فروشنده در خروجی [6 دقیقه]
11-07 استفاده از انواع رسانه خاص فروشنده در ورودی [2 دقیقه]
11-08 نسخهی نمایشی- کار با انواع رسانههای خاص فروشنده در ورودی [12 دقیقه]
11-09 نسخهی نمایشی- بهبود انتخاب بازنمایی منابع با یک ActionConstraint [4 دقیقه]
11-10 نسخهسازی در دنیایی آرام [6 دقیقه]
11-11 خلاصه [2 دقیقه]
12 شروع به کار با ذخیره منابع [40 دقیقه]
12-01 در راه است [1 دقیقه]
12-02 پشتیبانی از محدودیت حافظه پنهان [4 دقیقه]
12-03 انواع کش در کش Http [3 دقیقه]
12-04 ویژگی کش پاسخ و میانافزار [1 دقیقه]
12-05 نسخهی نمایشی- افزودن سربرگهای کش به پاسخ [3 دقیقه]
12-06 نسخهی نمایشی- افزودن یک فروشگاه کش با میانافزار ResponseCaching [2 دقیقه]
12-07 نسخهی نمایشی- استفاده از نمایههای کش برای اعمال قوانین مشابه در منابع مختلف [2 دقیقه]
12-08 مدل انقضا [7 دقیقه]
12-09 مدل اعتبارسنجی [11 دقیقه]
12-10 کاوش دستورالعمل کنترل حافظه پنهان [4 دقیقه]
12-11 خلاصه [2 دقیقه]
13 پشتیبانی از کش HTTP برای ASP.NET Core API [31 دقیقه]
13-01 در راه است [1 دقیقه]
13-02 پشتیبانی از ETags [2 دقیقه]
13-03 نسخهی نمایشی- افزودن پشتیبانی برای تولید ETag [5 دقیقه]
13-04 نسخهی نمایشی- پیکربندی سرصفحه کش جهانی [4 دقیقه]
13-05 نسخهی نمایشی- پیکربندی هدر حافظه پنهان در سطح منبع [3 دقیقه]
13-06 نسخهی نمایشی- برخورد با بازنماییهای مختلف پاسخ [3 دقیقه]
13-07 نسخهی نمایشی- ETags و مدل اعتبارسنجی [5 دقیقه]
13-08 فروشگاههای کش و شبکههای تحویل محتوا [4 دقیقه]
13-09 عدم اعتبار کش [2 دقیقه]
13-10 خلاصه [2 دقیقه]
14 پشتیبانی از همزمانی [11 دقیقه]
14-01 در راه است [1 دقیقه]
14-02 پشتیبانی از همزمانی در دنیایی آرام [4 دقیقه]
14-03 نسخهی نمایشی- پشتیبانی از همزمانی [5 دقیقه]
14-04 خلاصه [1 دقیقه]
کوین داکس یک معمار راه حل آزاد، نویسنده و مشاور است که در آنتورپ (بلژیک) زندگی میکند. او عمدتاً بر روی معماری راهحل/برنامهها و امنیت برای برنامههای مبتنی بر وب (API) که با داتنت ساخته شدهاند، متمرکز است، اما او همچنین چشمانداز پیشرفتهای جدید مربوط به محصولات دیگر از پشته داتنت است. او MVP مایکروسافت و عضو هیئت مدیره انجمن RD MS است. او همچنین یک سخنران منظم در کنفرانسهای مختلف (بینالمللی) ملی و رویدادهای گروه کاربر است و روی پروژههای متن باز مختلف مانند Microsoft.AspNet.JsonPatch و Marvin.Cache.Headers کار میکند. کوین دوست دارد به جاهایی که قبلا ندیده سفر کند و در جمع چند دوست خوب از یک لیوان شراب خوب لذت میبرد.