Table of Contents

Class SemanticApiVersionParser

Namespace
Codebelt.Extensions.Asp.Versioning
Assembly
Codebelt.Extensions.Asp.Versioning.dll

Parses semantic API version strings into SemanticApiVersion instances.

public sealed class SemanticApiVersionParser : IApiVersionParser
Inheritance
SemanticApiVersionParser
Implements
IApiVersionParser

Examples

Use SemanticApiVersionParser when a raw API-version value must be parsed before it is passed into Asp.Versioning services. The parsed result is still an ApiVersion, but callers can use the semantic subtype to inspect patch, pre-release, and build metadata values.

using Asp.Versioning;
using Codebelt.Extensions.Asp.Versioning;

namespace Codebelt.Extensions.Asp.Versioning;

public class SemanticVersionRequestReader
{
    public string Describe(string requestedVersion)
    {
        var parser = new SemanticApiVersionParser();
        ApiVersion apiVersion = parser.Parse(requestedVersion);
        var semanticVersion = (SemanticApiVersion)apiVersion;

        return semanticVersion.Prerelease == null
            ? $"Stable API {semanticVersion.MajorVersion}.{semanticVersion.MinorVersion}.{semanticVersion.PatchVersion}"
            : $"Preview API {semanticVersion.Prerelease}";
    }
}

Properties

Default

Gets the default parser instance.

public static SemanticApiVersionParser Default { get; }

Property Value

SemanticApiVersionParser

The default parser instance.

Methods

Parse(ReadOnlySpan<char>)

Parses the specified text.

public ApiVersion Parse(ReadOnlySpan<char> text)

Parameters

text ReadOnlySpan<char>

The text to parse as an API version.

Returns

ApiVersion

The parsed API version.

TryParse(ReadOnlySpan<char>, out ApiVersion)

Attempts to parse the specified text.

public bool TryParse(ReadOnlySpan<char> text, out ApiVersion apiVersion)

Parameters

text ReadOnlySpan<char>

The text to parse as an API version.

apiVersion ApiVersion

The parsed API version or null.

Returns

bool

True if the parsing was successful; otherwise false.

See Also

IApiVersionParser