Scalar.AspNetCore 1.2.23

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

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

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 (31)

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 5,310 2/13/2025
2.0.12 18,526 2/6/2025
2.0.11 8,405 2/4/2025
2.0.10 1,132 2/4/2025
2.0.9 17,650 1/30/2025
2.0.8 747 1/30/2025
2.0.7 7,863 1/28/2025
2.0.6 693 1/28/2025
2.0.5 4,584 1/27/2025
2.0.4 14,715 1/22/2025
2.0.2 10,460 1/20/2025
2.0.1 14,142 1/17/2025
2.0.0 2,899 1/16/2025
1.2.76 26,356 1/13/2025
1.2.75 6,925 1/11/2025
1.2.74 17,816 1/8/2025
1.2.73 3,709 1/7/2025
1.2.72 34,770 12/24/2024
1.2.71 3,349 12/23/2024
1.2.70 5,068 12/22/2024
1.2.69 1,189 12/22/2024
1.2.68 1,705 12/21/2024
1.2.67 549 12/20/2024
1.2.66 3,680 12/20/2024
1.2.65 473 12/19/2024
1.2.64 7,954 12/18/2024
1.2.63 4,235 12/18/2024
1.2.61 2,919 12/17/2024
1.2.60 1,791 12/17/2024
1.2.59 349 12/17/2024
1.2.58 223 12/16/2024
1.2.57 1,044 12/16/2024
1.2.56 8,834 12/15/2024
1.2.55 4,401 12/13/2024
1.2.54 276 12/13/2024
1.2.53 8,785 12/11/2024
1.2.52 883 12/11/2024
1.2.51 10,468 12/10/2024
1.2.50 4,872 12/9/2024
1.2.49 11,465 12/6/2024
1.2.48 4,616 12/5/2024
1.2.47 5,616 12/4/2024
1.2.46 902 12/4/2024
1.2.45 68,321 11/27/2024
1.2.44 22,971 11/23/2024
1.2.43 1,171 11/22/2024
1.2.42 11,546 11/21/2024
1.2.41 16,840 11/20/2024
1.2.40 759 11/19/2024
1.2.39 12,768 11/17/2024
1.2.38 300 11/16/2024
1.2.37 8,823 11/14/2024
1.2.36 13,573 11/13/2024
1.2.35 2,221 11/12/2024
1.2.34 12,456 11/10/2024
1.2.33 2,430 11/8/2024
1.2.32 305 11/7/2024
1.2.31 3,846 11/6/2024
1.2.30 2,101 11/4/2024
1.2.29 4,950 11/1/2024
1.2.28 994 11/1/2024
1.2.27 6,325 10/30/2024
1.2.26 3,010 10/30/2024
1.2.25 2,503 10/29/2024
1.2.24 1,302 10/28/2024
1.2.23 4,986 10/27/2024
1.2.22 3,434 10/24/2024
1.2.21 3,246 10/23/2024
1.2.20 649 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,240 10/7/2024
1.2.8 517 10/7/2024
1.2.7 686 10/3/2024
1.2.6 240 10/2/2024
1.2.5 1,446 9/28/2024
1.2.4 3,357 9/22/2024
1.2.3 6,443 9/6/2024
1.1.2 11,236 7/18/2024
1.1.1 4,999 5/21/2024
1.0.1 611 5/15/2024