Scalar.AspNetCore 1.2.21

There is a newer version of this package available.
See the version list below for details.
dotnet add package Scalar.AspNetCore --version 1.2.21                
NuGet\Install-Package Scalar.AspNetCore -Version 1.2.21                
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="Scalar.AspNetCore" Version="1.2.21" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Scalar.AspNetCore --version 1.2.21                
#r "nuget: Scalar.AspNetCore, 1.2.21"                
#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.
// Install Scalar.AspNetCore as a Cake Addin
#addin nuget:?package=Scalar.AspNetCore&version=1.2.21

// Install Scalar.AspNetCore as a Cake Tool
#tool nuget:?package=Scalar.AspNetCore&version=1.2.21                

Scalar .NET API Reference Integration

Version Downloads Discord

This .NET package Scalar.AspNetCore provides an easy way to render beautiful API references based on OpenAPI/Swagger documents.

Made possible by the wonderful work of @captainsafia on building the integration and docs written for the Scalar & .NET integration. Thanks to @xC0dex for making it awesome.

dotnet

Usage

  1. Install the package
dotnet add package Scalar.AspNetCore --version 1.2.*

[!NOTE] We release new versions frequently to bring you the latest features and bug fixes. To reduce the noise in your project file, we recommend using a wildcard for the patch version, e.g., 1.2.*.

  1. Add the using directive
using Scalar.AspNetCore;
  1. Configure your application

Add the following lines to your Program.cs for .NET 9:

builder.Services.AddOpenApi();

if (app.Environment.IsDevelopment())
{
    app.MapOpenApi();
    app.MapScalarApiReference();
}

or for .NET 8 with Swashbuckle:

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger(options =>
    {
        options.RouteTemplate = "openapi/{documentName}.json";
    });
    app.MapScalarApiReference();
}

That's it! πŸŽ‰ Now you will see the Scalar UI when using the defaults by navigating to /scalar/v1 in your browser.

Configuration

The MapScalarApiReference method has an optional parameter that you can use to customize the behavior of the Scalar UI:

// Fluent API
app.MapScalarApiReference(options =>
{
    options
        .WithTitle("My custom API")
        .WithTheme(ScalarTheme.Mars)
        .WithSidebar(false)
        .WithDefaultHttpClient(ScalarTarget.CSharp, ScalarClient.HttpClient)
        .WithPreferredScheme("ApiKey")
        .WithApiKeyAuthentication(x => x.Token = "my-api-key");
});

// Object initializer
app.MapScalarApiReference(options =>
{
    options.Title = "My custom API";
    options.Theme = ScalarTheme.Mars;
    options.ShowSidebar = false;
    options.DefaultHttpClient = new(ScalarTarget.CSharp, ScalarClient.HttpClient);
    options.Authentication = new ScalarAuthenticationOptions
    {
        PreferredSecurityScheme = "ApiKey",
        ApiKey = new ApiKeyOptions
        {
            Token = "my-api-key"
        }
    };
});

For more possible options and their default values, check out the ScalarOptions.cs class.

It is also possible to configure the options via dependency injection, using the options pattern:

builder.Services.Configure<ScalarOptions>(options => options.Title = "My custom API");
// or
builder.Services.AddOptions<ScalarOptions>().BindConfiguration("Scalar");

[!NOTE] Options which are set via the MapScalarApiReference method will take precedence over options set via dependency injection.

Development

  1. Download .NET 9.0
  2. Jump to the package folder: cd packages/scalar.aspnetcore
  3. Do a fresh build: dotnet build
  4. Run the tests: dotnet test

And see it in action here:

  1. Switch to the playground: cd playground/Scalar.AspNetCore.Playground
  2. Start the playground: dotnet run
  3. Open this URL in the browser: http://localhost:5056/scalar/v1

Community

We are API nerds. You too? Let’s chat on Discord: https://discord.gg/scalar

License

The source code in this repository is licensed under MIT.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.
  • net9.0

    • No dependencies.

NuGet packages (30)

Showing the top 5 NuGet packages that depend on Scalar.AspNetCore:

Package Downloads
Rystem.Api.Server

Rystem.Api helps you to integrate Api Server and Automated Client for Aspect-Oriented programming.

devprime.stack.web

DevPrime Web

ShayganTadbir.Framework.Core

Package description

Milochau.Core.Aws.Integration

Milochau.Core.Aws.Integration contains integration tests helpers as part of the Milochau.Core.Aws framework for applications.

Corner49.Infra

An opinionated set of infrastructure libraries for .Net applications

GitHub repositories (30)

Showing the top 5 popular GitHub repositories that depend on Scalar.AspNetCore:

Repository Stars
dotnet/AspNetCore.Docs
Documentation for ASP.NET Core
dotnet/eShop
A reference .NET application implementing an eCommerce site
davidfowl/TodoApp
Todo application with ASP.NET Core Blazor WASM, Minimal APIs and Authentication
grandnode/grandnode2
Open-Source eCommerce Platform on .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, LiteDB & Vue.js
GZTimeWalker/GZCTF
The GZ::CTF project, an open source CTF platform.
Version Downloads Last updated
2.0.14 4,209 2/13/2025
2.0.12 17,997 2/6/2025
2.0.11 8,209 2/4/2025
2.0.10 1,073 2/4/2025
2.0.9 17,412 1/30/2025
2.0.8 693 1/30/2025
2.0.7 7,741 1/28/2025
2.0.6 649 1/28/2025
2.0.5 4,485 1/27/2025
2.0.4 14,549 1/22/2025
2.0.2 10,277 1/20/2025
2.0.1 13,896 1/17/2025
2.0.0 2,861 1/16/2025
1.2.76 26,145 1/13/2025
1.2.75 6,819 1/11/2025
1.2.74 17,708 1/8/2025
1.2.73 3,652 1/7/2025
1.2.72 34,484 12/24/2024
1.2.71 3,316 12/23/2024
1.2.70 5,042 12/22/2024
1.2.69 1,170 12/22/2024
1.2.68 1,676 12/21/2024
1.2.67 530 12/20/2024
1.2.66 3,660 12/20/2024
1.2.65 454 12/19/2024
1.2.64 7,934 12/18/2024
1.2.63 4,216 12/18/2024
1.2.61 2,897 12/17/2024
1.2.60 1,769 12/17/2024
1.2.59 329 12/17/2024
1.2.58 204 12/16/2024
1.2.57 1,021 12/16/2024
1.2.56 8,796 12/15/2024
1.2.55 4,374 12/13/2024
1.2.54 257 12/13/2024
1.2.53 8,757 12/11/2024
1.2.52 864 12/11/2024
1.2.51 10,411 12/10/2024
1.2.50 4,844 12/9/2024
1.2.49 11,408 12/6/2024
1.2.48 4,592 12/5/2024
1.2.47 5,589 12/4/2024
1.2.46 881 12/4/2024
1.2.45 68,242 11/27/2024
1.2.44 22,857 11/23/2024
1.2.43 1,153 11/22/2024
1.2.42 11,533 11/21/2024
1.2.41 16,791 11/20/2024
1.2.40 747 11/19/2024
1.2.39 12,737 11/17/2024
1.2.38 296 11/16/2024
1.2.37 8,808 11/14/2024
1.2.36 13,521 11/13/2024
1.2.35 2,221 11/12/2024
1.2.34 12,430 11/10/2024
1.2.33 2,430 11/8/2024
1.2.32 305 11/7/2024
1.2.31 3,844 11/6/2024
1.2.30 2,101 11/4/2024
1.2.29 4,930 11/1/2024
1.2.28 994 11/1/2024
1.2.27 6,258 10/30/2024
1.2.26 3,008 10/30/2024
1.2.25 2,503 10/29/2024
1.2.24 1,300 10/28/2024
1.2.23 4,978 10/27/2024
1.2.22 3,411 10/24/2024
1.2.21 3,246 10/23/2024
1.2.20 646 10/22/2024
1.2.19 128 10/22/2024
1.2.18 5,065 10/20/2024
1.2.17 452 10/20/2024
1.2.16 689 10/19/2024
1.2.15 543 10/19/2024
1.2.14 238 10/18/2024
1.2.13 218 10/18/2024
1.2.12 895 10/18/2024
1.2.11 241 10/17/2024
1.2.10 3,318 10/17/2024
1.2.9 15,216 10/7/2024
1.2.8 517 10/7/2024
1.2.7 682 10/3/2024
1.2.6 240 10/2/2024
1.2.5 1,446 9/28/2024
1.2.4 3,331 9/22/2024
1.2.3 6,389 9/6/2024
1.1.2 11,234 7/18/2024
1.1.1 4,999 5/21/2024
1.0.1 611 5/15/2024