Udemy.Building.Asp.Net.Core.Rest.Apis.With.An.Ai.Powered.Workflow.2026.BOOKWARE-IWL

Section
Appz
Group
IWL
Size
14,91 GB
Files
43
Date
2026-10-31

NFO

  Title:      Udemy.Building.Asp.Net.Core.Rest.Apis.With.An.Ai.Powered.Workflow.2026.BOOKWARE-IWL
  Date:       2026-10-31
  Published:  2026-10-13
  Updated:    2026-10-19
  Platform:   Udemy
  Category:   Development > Web Development
  Runtime:    23h 20m
  Size:       14.91 GiB
  Subs:       English
  Url:        https://www.udemy.com/course/building-aspnet-core-rest-apis-with-an-ai-powered-workflow/
  Resources:  13 external links
              Elegant Code - my YouTube channel: https://www.youtube.com/@ElegantCodeChannel
              Using Visual Studio Code for C# Development on Mac & Windows: https://docs.google.com/document/d/1kb2jAtqw-2RV-4FCZo8iHjH_EAU20wt6HvFT0Bk7n-w/edit?tab=t.0
              Using Visual Studio Code for C# Development on Mac: https://docs.google.com/document/d/1kb2jAtqw-2RV-4FCZo8iHjH_EAU20wt6HvFT0Bk7n-w
              Nullable reference types video: https://youtu.be/-J3NzuNz3jo
              "required" keyword video: https://youtu.be/F-RtSgD4BSg
              Records video: https://youtu.be/gpIrvdwvjuc
              Extension methods video: https://youtu.be/xEFQw2hG3ro
              Value types vs Reference types in C#: https://youtu.be/HY4jFcosN_A
              Copilot for students: https://docs.github.com/en/copilot/how-tos/copilot-on-github/set-up-copilot/enable-copilot/set-up-for-students
              C# attributes explained: https://youtu.be/QerhgjQW0jk
              Docker download link: https://www.docker.com/products/docker-desktop/
              Installing a package as a Development-Only Dependency: https://docs.google.com/document/d/1T5fVP7qYS4hjThBbfCGSs8zpAwHF2vfsuFl8NyA7-qE/edit?usp=sharing
              Extension methods explained: https://youtu.be/xEFQw2hG3ro
  Lessons:
       01 - Welcome! Basic information & how to get help (1m 26s)
       02 - 50 seconds about your instructor (50s)
       03 - 108 seconds about what this course is (1m 48s)
       04 - 55  seconds about what this course isn't (55s)
       05 - AI Tools — what to expect (5m 57s)
       06 - 119 seconds about practicing what you learn (1m 59s)
       07 - Section introduction (39s)
       08 - What are APIs and why do we need them? (5m 53s)
       09 - What is ASP.NET Core? (4m 3s)
       10 - How web communication works. HTTP (3m 3s)
       11 - Web communication in action (4m 29s)
       12 - JSON (4m 2s)
       13 - Resource vs Endpoint (2m 16s)
       14 - Section introduction (1m 27s)
       15 - (Windows) Installing Visual Studio Community (2m 17s)
       16 - (Windows) Installing Visual Studio Code (3m 9s)
       17 - (MacOS) Installing Visual Studio Code (6m 16s)
       18 - Section introduction (26s)
       19 - [Visual Studio Community] Creating a new ASP.NET Core Web API project (5m 8s)
       20 - [Visual Studio Code] Creating a new ASP.NET Core Web API project (5m 53s)
       21 - Project structure overview (4m 17s)
       22 - Understanding the Program.cs file (4m 7s)
       23 - Running the API and sending your first request (6m 34s)
       24 - [Visual Studio Community] Debugging with breakpoints (48s)
       25 - [Visual Studio Code] Debugging with breakpoints (1m 21s)
       26 - Using the Console (2m 47s)
       27 - Section introduction (2m 16s)
       28 - Introduction to source control (4m 25s)
       29 - GitHub fundamentals & account setup (2m 17s)
       30 - Initializing a Git repository (Visual Studio Community) (4m 14s)
       31 - Initializing a Git repository (Visual Studio Code) (6m 19s)
       32 - Using Git from the IDE (5m 59s)
       33 - Section introduction (33s)
       34 - The API we will build (2m 28s)
       35 - Minimal API vs Controllers (5m 40s)
       36 - Defining the first entity (5m 53s)
       37 - Defining the first endpoint. GET (7m 32s)
       38 - Registering the endpoint (9m 23s)
       39 - Section introduction (33s)
       40 - Calling the API from the IDE. HTTP files (6m 28s)
       41 - The importance of endpoint registration (1m 30s)
       42 - OpenAPI documentation (3m 3s)
       43 - Setting up Scalar (4m 39s)
       44 - Using Scalar (2m 34s)
       45 - Understanding the launchSettings.json file (5m 4s)
       46 - Configuring launch settings (3m 11s)
       47 - Section introduction (27s)
       48 - REST (8m 52s)
       49 - HTTP Response Codes (7m 47s)
       50 - HTTP Methods - GET, POST, PUT, PATCH, DELETE (6m 14s)
       51 - Method safety and idempotency (4m 28s)
       52 - HTTP Methods - HEAD, OPTIONS, TRACE and CONNECT (2m 15s)
       53 - HTTP methods best practices (2m 20s)
       54 - REST API best practices (7m 35s)
       55 - Section introduction (20s)
       56 - GET by ID. Route parameter binding (3m 58s)
       57 - Route constraints (4m 41s)
       58 - Documenting response types with Produces (3m 43s)
       59 - Type-safe responses in Minimal APIs (6m 44s)
       60 - Model binding (2m 35s)
       61 - POST (4m 34s)
       62 - The response from POST (6m 12s)
       63 - Problem Details (3m 59s)
       64 - Updating endpoints to produce Problem Details (6m 36s)
       65 - PUT or PATCH? (3m 35s)
       66 - PUT (9m 24s)
       67 - DELETE (4m 22s)
       68 - Section introduction (3m 10s)
       69 - Chat GPT & Claude in the browser (5m 48s)
       70 - Copilot or Claude Code? What to know before you choose (1m 59s)
       71 - Setting up GitHub Copilot in Visual Studio Community (1m 42s)
       72 - Setting up GitHub Copilot in Visual Studio Code (2m 5s)
       73 - Setting up Claude Code in Visual Studio Code (2m 30s)
       74 - GitHub Copilot - a basic tutorial (11m 36s)
       75 - Claude Code - a basic tutorial (10m 33s)
       76 - Prompting basics for coding tasks (6m 10s)
       77 - When to be careful with AI (7m 14s)
       78 - Section introduction (45s)
       79 - Author entity (1m 29s)
       80 - GET (6m 57s)
       81 - Understanding ActionResult (5m 16s)
       82 - GET by Id (6m 14s)
       83 - POST (7m 18s)
       84 - PUT (3m 53s)
       85 - DELETE (3m 14s)
       86 - Minimal APIs vs Controllers - summary (3m 57s)
       87 - Section introduction (41s)
       88 - Databases (5m 2s)
       89 - PostgreSQL (2m 59s)
       90 - Installing Docker (3m 41s)
       91 - Installing  PostgreSQL (2m 34s)
       92 - Installing DBeaver (1m 36s)
       93 - Connecting DBeaver to our database (2m 20s)
       94 - Introduction to Entity Framework Core (5m 35s)
       95 - Code first vs Database first (2m 22s)
       96 - Entity Framework Core setup (3m 7s)
       97 - DbContext (6m 17s)
       98 - Appsettings (4m 4s)
       99 - Connection strings (3m 33s)
       100 - Migrations (5m 5s)
       101 - Migration files (4m 7s)
       102 - Applying a migration (1m 44s)
       103 - Browsing the database in DBeaver (6m 31s)
       104 - Troubleshooting migrations and database Issues (4m 29s)
       105 - Updating CategoriesEndpoints to use the database (11m 40s)
       106 - Updating AuthorsController to use the database (4m 59s)
       107 - Why do we use concrete DbContext? (3m 43s)
       108 - Dependency Injection in ASP.NET Core (4m 10s)
       109 - Service lifetime (4m 44s)
       110 - Adding seed data (7m 3s)
       111 - Switching to Microsoft SQL Server (6m 53s)
       112 - Section introduction (23s)
       113 - The need for DTOs (1m 46s)
       114 - DTOs (7m 32s)
       115 - Introducing DTOs for Categories (4m 20s)
       116 - Updating the Categories Endpoints to use DTOs (6m 48s)
       117 - One DTO per operation (4m 51s)
       118 - Updating the AuthorsController to use DTOs (7m 20s)
       119 - Section introduction (25s)
       120 - The problem with manual mapping (2m 39s)
       121 - Introducing Mapperly (5m 54s)
       122 - Using the mapper in AuthorsController (5m 41s)
       123 - Mapperly — handling more complex cases (6m 33s)
       124 - Using the mapper for Categories (6m 43s)
       125 - Section introduction (45s)
       126 - The need for validation (2m 44s)
       127 - Validation with Data Annotations (10m 17s)
       128 - Introduction to FluentValidation (3m 29s)
       129 - Validation with FluentValidation (6m 55s)
       130 - Validation with FluentValidation - refactoring (4m 13s)
       131 - Validation Rules — Data Annotations vs FluentValidation (7m 17s)
       132 - Validation and database checks (2m 58s)
       133 - FluentValidation in Controllers (6m)
       134 - Data Annotations in Minimal APIs (2m 24s)
       135 - Section introduction (25s)
       136 - Request pipeline and middleware (7m 54s)
       137 - Configuring the request pipeline in Program.cs (3m 5s)
       138 - HttpContext (3m 46s)
       139 - Custom middleware (8m 43s)
       140 - Extracting middleware into a class (5m 10s)
       141 - Global exception handling (3m 33s)
       142 - Custom global exception handler (6m 25s)
       143 - Section introduction (26s)
       144 - Introduction to endpoint filters and action filters (6m 35s)
       145 - The need for endpoint filters (6m)
       146 - Custom endpoint filter (6m 10s)
       147 - Extracting the endpoint filter into a reusable class (5m 2s)
       148 - Custom action filter (8m 33s)
       149 - Section introduction (1m 3s)
       150 - Relationships in relational databases (3m 48s)
       151 - One-to-Many relationships in EF Core (6m 28s)
       152 - Many-to-Many relationships in EF Core (3m 43s)
       153 - Adding BooksController (7m 33s)
       154 - Adding BookMapper (2m 23s)
       155 - Including related data in DTOs (6m 3s)
       156 - DTO flattening (6m 44s)
       157 - Loading related data with Include (6m 19s)
       158 - Adding collections to DTOs (4m 16s)
       159 - Circular references in DTOs (6m 58s)
       160 - Updating related data in EF Core (5m 17s)
       161 - Updating available copies when total copies change (5m 18s)
       162 - Different DTOs for different endpoints (5m 46s)
       163 - Deciding which side owns the relationship (5m 19s)
       164 - Preventing deletion of entities with related data (5m 16s)
       165 - Configuring Mapperly for related data (4m 52s)
       166 - AI code review in practice (8m 35s)
       167 - Section introduction (34s)
       168 - The need for pagination (3m 47s)
       169 - Query parameters and URL segments (3m 33s)
       170 - Implementing pagination (5m 47s)
       171 - Pagination metadata in response headers (4m 8s)
       172 - Reusable pagination parameters (5m 37s)
       173 - Breaking changes and API contracts (8m 2s)
       174 - Binding sources (4m 19s)
       175 - Implementing filtering (8m 50s)
       176 - Nested resources and query parameters in MinimalAPIs (10m 51s)
       177 - Implementing sorting (10m 40s)
       178 - Section introduction (1m 13s)
       179 - The need for service layer (7m 3s)
       180 - Introducing the first service (7m 1s)
       181 - Introducing the result pattern (2m 40s)
       182 - The ErrorOr library (9m 10s)
       183 - Using ErrorOr in the service (5m 8s)
       184 - Handling ErrorOr results in the controller (6m 46s)
       185 - Moving GetAll business logic to the service (7m 52s)
       186 - Moving GetById and Update business logic to the service (5m 5s)
       187 - Moving the Delete business logic to the service (3m 15s)
       188 - Refactoring AuthorsController to use service layer (4m 39s)
       189 - Section introduction (17s)
       190 - Partial updates and the PATCH method (5m 12s)
       191 - Implementing PATCH - DTO and mapper (5m 46s)
       192 - Implementing PATCH - service layer (4m 56s)
       193 - Implementing PATCH - controller (3m 51s)
       194 - Validating PATCH values (4m 1s)
       195 - Validating PATCH model (3m 41s)
       196 - Section introduction (42s)
       197 - Introducing the Member entity (7m 54s)
       198 - Implementing the Member endpoints (6m 24s)
       199 - Soft delete of a member (6m 20s)
       200 - Restoring soft-deleted records (3m 22s)
       201 - Introducing the Loan entity (6m 59s)
       202 - Introducing the LoansController and the Loan DTO (6m 28s)
       203 - Implementing GetAll and GetById for Loans (10m 26s)
       204 - Implementing the Create endpoint for Loans (10m 20s)
       205 - Returning a book (6m 47s)
       206 - Testing the Loans endpoints (4m 12s)
       207 - Adding loan-related changes to the Members endpoints (7m 52s)
       208 - Adding loan-related changes to the Book endpoints (8m 11s)
       209 - Section introduction (1m 42s)
       210 - Why we need automated tests (5m 40s)
       211 - Setting up the test project (3m 47s)
       212 - Writing the first integration test (Testing POST for Categories) (9m 49s)
       213 - Why tests should not use the real database (3m 11s)
       214 - Switching to an in-memory database (4m 17s)
       215 - Integration tests vs unit tests (4m 23s)
       216 - The need to reset the database before each test (5m 39s)
       217 - Testing GET by ID for Categories (4m 5s)
       218 - Integration tests refactoring (5m 4s)
       219 - Testing GET for Categories (4m 38s)
       220 - Testing PUT for Categories (3m 3s)
       221 - Refactoring & HttpResponseMessageExtensions (6m 58s)
       222 - Testing DELETE for Categories (2m)
       223 - Measuring code coverage (3m 15s)
       224 - Testing error scenarios - GET (4m 35s)
       225 - Testing error scenarios - POST, PUT, DELETE (4m 59s)
       226 - Testing across multiple resources (5m 10s)
       227 - Introducing TestDataFactory (10m 46s)
       228 - Testing validation with integration tests (3m 58s)
       229 - Testing validation with unit tests (6m 58s)
       230 - Testing getting books by category (12m 43s)
       231 - Reviewing integration tests (18m 24s)
       232 - Extracting a base class for integration tests (10m 6s)
       233 - What's next with testing (1m 52s)
       234 - Section introduction (1m 2s)
       235 - Appending pagination headers in an extension method (6m 43s)
       236 - Extracting patch document validation into a method (3m 8s)
       237 - Moving errors into classes for Minimal API endpoints (2m 17s)
       238 - Extracting pagination logic into a common method (8m 47s)
       239 - Making sorting deterministic (11m 52s)
       240 - Refactoring of filtering and sorting (9m 58s)
       241 - Section introduction (1m 6s)
       242 - The need for authentication and authorization (2m 55s)
       243 - Authentication methods overview (5m 2s)
       244 - Introduction to ASP.NET Core Identity (2m 28s)
       245 - Setting up ASP.NET Core Identity (3m 40s)
       246 - Configuring the model with OnModelCreating (3m 45s)
       247 - Completing the Identity setup (5m 17s)
       248 - ApplicationUser vs Member (4m 57s)
       249 - Linking members to user accounts (7m 6s)
       250 - Introduction to roles (2m 56s)
       251 - Seeding roles (9m 6s)
       252 - Creating the user registration DTO (3m 4s)
       253 - Implementing the authentication service (7m 15s)
       254 - Adding endpoint for user registration (8m 8s)
       255 - Ensuring atomicity with transactions (4m 14s)
       256 - Removing member creation endpoint (4m 13s)
       257 - Fixing the tests (13m 58s)
       258 - Section introduction (1m 25s)
       259 - Basics of JWT (2m 53s)
       260 - Inside a JWT token (7m 37s)
       261 - JWT configuration (6m 55s)
       262 - Storing secrets safely (3m 55s)
       263 - Setting up JWT authentication (6m 31s)
       264 - Protecting an endpoint (2m 59s)
       265 - The login endpoint (2m 48s)
       266 - Verifying credentials (3m 32s)
       267 - Generating the JWT token (5m 59s)
       268 - Testing the login endpoint (3m 52s)
       269 - Returning meaningful errors for unauthenticated requests (3m 38s)
       270 - Seeding the first librarian (4m 13s)
       271 - Implementing the register librarian logic (5m 30s)
       272 - Role-based authorization (5m 42s)
       273 - Accessing the current user (4m 28s)
       274 - Protecting access to own resources (3m 7s)
       275 - Getting started with Postman (6m 25s)
       276 - Environments and automatic authorization in Postman (8m 58s)
       277 - Practical tips for working with Postman (5m 25s)
       278 - Securing all endpoints (8m 35s)
       279 - Updating the integration tests — the plan (1m 38s)
       280 - Providing JWT key for testing purposes (2m 36s)
       281 - Updating existing integration tests to work with authentication (7m 17s)
       282 - Speeding up password hashing in tests (3m 3s)
       283 - Testing unauthorized access (2m 16s)
       284 - Testing forbidden access (3m 53s)
       285 - Parameterized authorization tests (5m)
       286 - The AuthorizationTests suite (4m 3s)
       287 - Testing access to own resources (3m 40s)
Build production-ready APIs with C#, Entity Framework Core & PostgreSQL. Learn AI-assisted
development workflow.

Files

PathSize
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.nfo16,49 KB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r00381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r01381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r02381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r03381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r04381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r05381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r06381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r07381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r08381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r09381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r10381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r11381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r12381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r13381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r14381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r15381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r16381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r17381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r18381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r19381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r20381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r21381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r22381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r23381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r24381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r25381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r26381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r27381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r28381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r29381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r30381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r31381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r32381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r33381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r34381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r35381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r36381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r37381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r38381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.r3911,51 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.rar381,47 MB
udemy.building.asp.net.core.rest.apis.with.an.ai.powered.workflow.2026.bookware-iwl.sfv3,92 KB