← ClaudeAtlas

aspnet-api-patternslisted

ASP.NET Core API patterns — controllers vs minimal API, middleware, error handling, versioning, and authentication setup.
zdanovichnick/dotnet-pilot · ★ 3 · API & Backend · score 76
Install: claude install-skill zdanovichnick/dotnet-pilot
# ASP.NET Core API Patterns Reference for API development. Used by `dnp-api-scaffolder` and `dnp-planner`. ## Controller vs Minimal API Decision | Factor | Controllers | Minimal API | |--------|------------|-------------| | Team familiarity | Traditional .NET teams | Modern, lightweight preference | | OpenAPI support | Full attribute support | Requires explicit configuration | | Filters/middleware | Rich filter pipeline | Endpoint filters (simpler) | | File organization | One controller per resource | Endpoint groups or single file | | Testability | Via WebApplicationFactory | Same | | Performance | Slightly slower (reflection) | Slightly faster | ## Controller Pattern ```csharp [ApiController] [Route("api/[controller]")] [Produces("application/json")] public class UsersController : ControllerBase { [HttpGet("{id:int}")] [ProducesResponseType(typeof(UserResponse), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] public async Task<IActionResult> GetById(int id, CancellationToken ct) { var user = await _userService.GetByIdAsync(id, ct); return user is null ? NotFound() : Ok(user); } [HttpPost] [ProducesResponseType(typeof(UserResponse), StatusCodes.Status201Created)] [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)] public async Task<IActionResult> Create(CreateUserRequest request, CancellationToken ct) { var user = await _userService.C