Class MapToSemanticApiVersionAttribute
- Namespace
- Codebelt.Extensions.Asp.Versioning
- Assembly
- Codebelt.Extensions.Asp.Versioning.dll
Maps an API implementation to a semantic API version.
public sealed class MapToSemanticApiVersionAttribute : MapToApiVersionAttribute, IApiVersionProvider
- Inheritance
-
ApiVersionsBaseAttributeMapToApiVersionAttributeMapToSemanticApiVersionAttribute
- Implements
-
IApiVersionProvider
- Inherited Members
-
ApiVersionsBaseAttribute.Equals(object)ApiVersionsBaseAttribute.GetHashCode()ApiVersionsBaseAttribute.Versions
Examples
Use MapToSemanticApiVersionAttribute when one implementation advertises multiple semantic API versions and a specific action should handle only one of them. The example constructs the same metadata an action attribute declaration would create and reads back the mapped semantic API version.
using System.Linq;
using Codebelt.Extensions.Asp.Versioning;
namespace Codebelt.Extensions.Asp.Versioning;
public class SemanticActionMapping
{
public string GetMappedVersion()
{
var attribute = new MapToSemanticApiVersionAttribute("1.2.3-alpha+build.5");
var version = attribute.Versions.OfType<SemanticApiVersion>().Single();
return version.ToString();
}
}
Constructors
MapToSemanticApiVersionAttribute(int, int, int, string, string)
Initializes a new instance of the MapToSemanticApiVersionAttribute class.
public MapToSemanticApiVersionAttribute(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.
MapToSemanticApiVersionAttribute(string)
Initializes a new instance of the MapToSemanticApiVersionAttribute class.
public MapToSemanticApiVersionAttribute(string version)
Parameters
versionstringThe semantic API version string to parse.
Exceptions
- FormatException
versionis not a valid semantic API version.