ASP.NET Core Web API Interview Question #176
How would you design a production-ready ASP.NET Core Web API?
Senior API Design, Architecture, Scalability & Production Scenarios Senior Advanced
Quick Interview Answer
Start with a clear public contract and separate HTTP concerns from application and domain logic. Use request/response DTOs, validation, authentication, policy-based authorization, consistent ProblemDetails errors, asynchronous I/O, cancellation, structured logging, and appropriate persistence boundaries.
Detailed Explanation
Start with a clear public contract and separate HTTP concerns from application and domain logic. Use request/response DTOs, validation, authentication, policy-based authorization, consistent ProblemDetails errors, asynchronous I/O, cancellation, structured logging, and appropriate persistence boundaries.
Production readiness also includes observability, health checks, rate limiting where appropriate, resilience for external dependencies, secure configuration, automated testing, controlled database migrations, deployment automation, and a backward-compatible API evolution strategy.
Code Example
// Typical boundaries:
// API -> Application -> Domain
// -> Infrastructure
builder.Services.AddProblemDetails();
builder.Services.AddHealthChecks();
builder.Services.AddAuthentication();
builder.Services.AddAuthorization();
app.UseExceptionHandler();
app.UseAuthentication();
app.UseAuthorization();
app.MapControllers();