What are middleware and how do you create custom middleware?

๐Ÿ’ก Concept: Middleware in ASP.NET Core

Middleware are components in the HTTP request pipeline that process requests and responses.

๐Ÿ“˜ Quick Intro

Middleware components execute in a sequence and can handle, modify, or short-circuit requests.

๐Ÿง  Analogy

Like an assembly line where each station performs a specific task on the product.

๐Ÿ”ง Technical Explanation

  • Middleware are classes with an Invoke or InvokeAsync method.
  • They have access to HttpContext and the next middleware.
  • Registered in Startup.cs via IApplicationBuilder.
  • Can perform actions before and after calling the next middleware.
  • Enable cross-cutting concerns like logging, authentication, error handling.

๐ŸŽฏ Use Cases

  • โœ… Authentication and authorization.
  • โœ… Logging and diagnostics.
  • โœ… Custom error handling.
  • โœ… Response compression and caching.

๐Ÿ’ป Code Example


// Custom middleware example
public class CustomMiddleware {
    private readonly RequestDelegate _next;

    public CustomMiddleware(RequestDelegate next) {
        _next = next;
    }

    public async Task InvokeAsync(HttpContext context) {
        // Logic before next middleware
        await context.Response.WriteAsync(""Before next middleware\n"");

        await _next(context);

        // Logic after next middleware
        await context.Response.WriteAsync(""After next middleware\n"");
    }
}

// Register in Startup.cs
public void Configure(IApplicationBuilder app) {
    app.UseMiddleware();
    // other middleware
}

โ“ Interview Q&A

Q1: What is middleware?
A: Software components that handle HTTP requests and responses.

Q2: How do you create custom middleware?
A: Create a class with Invoke or InvokeAsync method and register it.

Q3: What is the order of middleware execution?
A: Middleware executes in the order registered.

Q4: Can middleware short-circuit requests?
A: Yes, by not calling the next middleware.

Q5: What is the use of next middleware delegate?
A: To call the next middleware in the pipeline.

Q6: Can middleware modify responses?
A: Yes.

Q7: Where do you register middleware?
A: In Startup.cs Configure method.

Q8: What are some built-in middleware?
A: Authentication, Static Files, Routing.

Q9: Is middleware pipeline configurable?
A: Yes.

Q10: Can middleware be asynchronous?
A: Yes.

๐Ÿ“ MCQs

Q1. What is middleware?

  • Software handling HTTP requests
  • Database service
  • UI component
  • Background task

Q2. How do you create custom middleware?

  • Using filters
  • Class with Invoke method
  • Middleware attribute
  • Static class

Q3. What controls middleware order?

  • Alphabetical
  • Registration order
  • Random
  • Priority attribute

Q4. Can middleware short-circuit requests?

  • No
  • Yes
  • Sometimes
  • Never

Q5. What does next middleware do?

  • Stops pipeline
  • Calls next component
  • Restarts pipeline
  • Ignores request

Q6. Can middleware modify response?

  • No
  • Yes
  • Sometimes
  • Never

Q7. Where to register middleware?

  • Program.cs
  • Startup.cs Configure
  • Controllers
  • Middleware folder

Q8. Name built-in middleware

  • Authentication, Routing
  • Logging, Caching
  • Validation, Filters
  • Services, Repositories

Q9. Is middleware pipeline configurable?

  • No
  • Yes
  • Maybe
  • Rarely

Q10. Can middleware be async?

  • No
  • Yes
  • Sometimes
  • Never

๐Ÿ’ก Bonus Insight

Middleware provides a powerful way to customize and control the HTTP request pipeline in ASP.NET Core.

๐Ÿ“„ PDF Download

Need a handy summary for your notes? Download this topic as a PDF!

๐Ÿ” Navigation

๐Ÿ’ฌ Feedback
๐Ÿš€ Start Learning
Share:

Tags: