Atc.Rest.Extended 3.0.174

dotnet add package Atc.Rest.Extended --version 3.0.174
                    
NuGet\Install-Package Atc.Rest.Extended -Version 3.0.174
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Atc.Rest.Extended" Version="3.0.174" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Atc.Rest.Extended" Version="3.0.174" />
                    
Directory.Packages.props
<PackageReference Include="Atc.Rest.Extended" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Atc.Rest.Extended --version 3.0.174
                    
#r "nuget: Atc.Rest.Extended, 3.0.174"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Atc.Rest.Extended@3.0.174
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Atc.Rest.Extended&version=3.0.174
                    
Install as a Cake Addin
#tool nuget:?package=Atc.Rest.Extended&version=3.0.174
                    
Install as a Cake Tool

Atc.Rest.Extended

Target Framework: net9.0

Advanced REST API features extending Atc.Rest with API versioning, FluentValidation, Swagger/OpenAPI documentation, and JWT authentication. This library builds on the foundation of Atc.Rest to provide enterprise-ready API capabilities.

Why Use This Library?

Atc.Rest.Extended adds production-ready features on top of Atc.Rest, providing everything needed for modern, versioned, and well-documented APIs. Instead of manually configuring multiple libraries, Atc.Rest.Extended provides:

  • API Versioning: Built-in support for versioning your REST APIs
  • FluentValidation: Advanced validation beyond data annotations
  • Swagger/OpenAPI: Automatic API documentation with SwaggerUI
  • JWT Authentication: Integrated JWT bearer token authentication
  • Extended Configuration: All Atc.Rest features plus advanced options

Perfect for:

  • Enterprise APIs requiring versioning
  • APIs needing comprehensive request validation
  • Public APIs requiring OpenAPI/Swagger documentation
  • Microservices with JWT authentication
  • Teams adopting API-first development

Installation

dotnet add package Atc.Rest.Extended

Target Framework

  • .NET 9.0

Key Features

  • API versioning with Asp.Versioning
  • FluentValidation for complex validation rules
  • Swagger/OpenAPI specification generation
  • SwaggerUI for interactive API documentation
  • JWT Bearer authentication support
  • All features from Atc.Rest

Requirements

Key Dependencies

  • Atc.Rest (base library)
  • Asp.Versioning.Mvc.ApiExplorer
  • FluentValidation.AspNetCore
  • Swashbuckle.AspNetCore
  • Microsoft.AspNetCore.Authentication.JwtBearer
  • Microsoft.ApplicationInsights.AspNetCore

Code documentation

References

References extended

services.AddRestApi and app.ConfigureRestApi examples

Using - minimal setup

Example with a minimal setup in the Startup.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
        restApiOptions = new RestApiOptions
        restApiOptions.AddAssemblyPairs(
            Assembly.GetAssembly(typeof(ApiRegistration)),
            Assembly.GetAssembly(typeof(DomainRegistration)));
    }

    public IConfiguration Configuration { get; }

    private readonly RestApiOptions restApiOptions;

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRestApi<Startup>(restApiOptions);
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.ConfigureRestApi(env, restApiOptions);
    }
}

Using - specified features setup

Example with specified features in the Startup.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
        restApiOptions = new RestApiExtendedOptions
        {
            // Base
            AllowAnonymousAccessForDevelopment = true,
            UseApplicationInsights = true,
            UseAutoRegistrateServices = true,
            UseValidateServiceRegistrations = true,
            UseEnumAsStringInSerialization = true,
            UseHttpContextAccessor = true,
            ErrorHandlingExceptionFilter = new RestApiOptionsErrorHandlingExceptionFilter
            {
                Enable = true,
                UseProblemDetailsAsResponseBody = true,
                IncludeExceptionDetails = true,
            },
            UseRequireHttpsPermanent = true,
            UseJsonSerializerOptionsIgnoreNullValues = true,
            JsonSerializerCasingStyle = CasingStyle.CamelCase,

            // Extended
            UseApiVersioning = true,
            UseFluentValidation = true,
            UseOpenApiSpec = true,
        };

        restApiOptions.AddAssemblyPairs(
            Assembly.GetAssembly(typeof(ApiRegistration)),
            Assembly.GetAssembly(typeof(DomainRegistration)));
    }

    public IConfiguration Configuration { get; }

    private readonly RestApiExtendedOptions restApiOptions;

    public void ConfigureServices(IServiceCollection services)
    {
        if (!restApiOptions.UseAutoRegistrateServices)
        {
            // Manual ConfigureServices
            services.ConfigureServices();
        }

        services.ConfigureOptions<ConfigureSwaggerOptions>();
        services.AddRestApi<Startup>(restApiOptions, Configuration);
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.ConfigureRestApi(env, restApiOptions);
    }
}

Contributing

Contributions are welcome! Please see the main repository README for contribution guidelines.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.174 71 6/24/2026
3.0.173 72 6/24/2026
3.0.172 72 6/24/2026
3.0.67 134 4/25/2026
3.0.46 117 4/15/2026
3.0.45 119 4/10/2026
3.0.44 111 4/9/2026
3.0.43 114 4/9/2026
3.0.41 114 4/9/2026
3.0.40 115 4/9/2026
3.0.18 296 2/9/2026
3.0.16 326 12/15/2025
3.0.12 246 11/28/2025
3.0.9 583 11/21/2025
3.0.8 436 11/14/2025
3.0.4 400 11/6/2025
2.0.562 653 9/4/2025
2.0.561 300 9/4/2025
2.0.560 316 9/3/2025
2.0.558 316 8/22/2025
Loading failed