A set of libraries for adding API versioning semantics to ASP.NET Web API, OData, and ASP.NET Core services.
ASP.NET API Versioning is a set of libraries that add service API versioning capabilities to ASP.NET Web API, OData with ASP.NET Web API, and ASP.NET Core applications. It solves the problem of managing API evolution by providing a structured way to version REST services, ensuring backward compatibility and clear versioning semantics. The libraries allow developers to define which API versions are implemented using simple metadata attributes and conventions.
Backend developers and architects building RESTful services with ASP.NET (Core, Web API, or OData) who need to manage multiple API versions over time. It's particularly useful for teams maintaining public APIs or services with long-term client commitments.
Developers choose ASP.NET API Versioning because it provides a comprehensive, guideline-compliant solution that integrates seamlessly with existing ASP.NET workflows. Its unique selling point is the combination of powerful versioning semantics, support for all major ASP.NET flavors, and extensive customization options without requiring changes to service implementation patterns.
Provides a set of libraries which add service API versioning to ASP.NET Web API, OData with ASP.NET Web API, and ASP.NET Core.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses metadata attributes like [ApiVersion] to declare versions without changing routing logic, aligning with the README's claim that developers don't need to learn new concepts.
Supports ASP.NET Core Minimal APIs, MVC, Web API, and OData v4.0 through separate NuGet packages, as detailed in the README's flavor list.
Default configuration follows Microsoft REST versioning semantics, ensuring industry-standard practices for API evolution.
Includes API explorer packages for easy OpenAPI documentation generation across all supported frameworks, reducing manual documentation effort.
Provides Asp.Versioning.Http.Client for creating version-aware HTTP clients, enabling end-to-end versioning management.
Requires different NuGet packages for each ASP.NET flavor (e.g., MVC vs. Minimal APIs), complicating dependency management and setup for mixed projects.
While basic setup is easy, supporting non-standard versioning semantics or transitioning legacy services involves complex extension points, as noted in the README.
Adheres to .NET's N-1 LTS support policy, meaning older library versions may not receive updates, potentially stranding legacy projects on unsupported .NET versions.