Class SemanticApiVersionAttribute
- Namespace
- Codebelt.Extensions.Asp.Versioning
- Assembly
- Codebelt.Extensions.Asp.Versioning.dll
Defines semantic API version metadata.
public sealed class SemanticApiVersionAttribute : ApiVersionAttribute, IApiVersionProvider
- Inheritance
-
ApiVersionsBaseAttributeApiVersionAttributeSemanticApiVersionAttribute
- Implements
-
IApiVersionProvider
- Inherited Members
-
ApiVersionAttribute.GetHashCode()ApiVersionAttribute.DeprecatedApiVersionsBaseAttribute.Equals(object)ApiVersionsBaseAttribute.Versions
Examples
Use SemanticApiVersionAttribute when an endpoint contract uses Semantic Versioning instead of the usual major/minor API-version shape. The attribute parses the supplied text through SemanticApiVersionParser, so the declared metadata keeps its patch, pre-release, and build metadata.
using System.Linq;
using Codebelt.Extensions.Asp.Versioning;
namespace Codebelt.Extensions.Asp.Versioning;
public class SemanticControllerVersionMetadata
{
public string GetDeclaredVersion()
{
var attribute = new SemanticApiVersionAttribute("2.1.3-rc.1+build.7");
var version = attribute.Versions.OfType<SemanticApiVersion>().Single();
return version.ToString();
}
}
Constructors
SemanticApiVersionAttribute(int, int, int, string, string)
Initializes a new instance of the SemanticApiVersionAttribute class.
public SemanticApiVersionAttribute(int major, int minor, int patch, string prerelease = null, string buildMetadata = null)
Parameters
majorintThe major version number.
minorintThe minor version number.
patchintThe patch version number.
prereleasestringThe optional pre-release identifier.
buildMetadatastringThe optional build metadata.
Exceptions
- ArgumentOutOfRangeException
major,minor, orpatchis less than zero.- ArgumentException
prereleaseis not a valid semantic version pre-release identifier - or -buildMetadatais not valid semantic version build metadata.
SemanticApiVersionAttribute(string)
Initializes a new instance of the SemanticApiVersionAttribute class.
public SemanticApiVersionAttribute(string version)
Parameters
versionstringThe semantic API version string to parse.
Exceptions
- FormatException
versionis not a valid semantic API version.