Scalar.AspNetCore 1.2.22

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

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

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. 
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 (9)

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

Package Downloads
devprime.stack.web

DevPrime Web

ZStack.AspNetCore

ZStack.AspNetCore框架

chd.Api.Base

Package Description

Corner49.Infra

An opinionated set of infrastructure libraries for .Net applications

Paralax.Docs.Scalar

Paralax.Docs.Scalar - Integration with Scalar for API documentation in microservices architecture

GitHub repositories (13)

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
GZTimeWalker/GZCTF
The GZ::CTF project, an open source CTF platform.
SteveDunn/Vogen
A semi-opinionated library which is a source generator and a code analyser. It Source generates Value Objects
Version Downloads Last updated
1.2.45 1,190 11/27/2024
1.2.44 4,673 11/23/2024
1.2.43 765 11/22/2024
1.2.42 3,058 11/21/2024
1.2.41 3,810 11/20/2024
1.2.40 408 11/19/2024
1.2.39 6,034 11/17/2024
1.2.38 194 11/16/2024
1.2.37 4,408 11/14/2024
1.2.36 6,043 11/13/2024
1.2.35 1,506 11/12/2024
1.2.34 4,641 11/10/2024
1.2.33 1,708 11/8/2024
1.2.32 181 11/7/2024
1.2.31 2,350 11/6/2024
1.2.30 1,655 11/4/2024
1.2.29 2,585 11/1/2024
1.2.28 632 11/1/2024
1.2.27 3,617 10/30/2024
1.2.26 1,408 10/30/2024
1.2.25 1,679 10/29/2024
1.2.24 393 10/28/2024
1.2.23 2,832 10/27/2024
1.2.22 2,074 10/24/2024
1.2.21 2,760 10/23/2024
1.2.20 578 10/22/2024
1.2.19 88 10/22/2024
1.2.18 3,478 10/20/2024
1.2.17 327 10/20/2024
1.2.16 461 10/19/2024
1.2.15 491 10/19/2024
1.2.14 188 10/18/2024
1.2.13 180 10/18/2024
1.2.12 763 10/18/2024
1.2.11 193 10/17/2024
1.2.10 2,004 10/17/2024
1.2.9 8,905 10/7/2024
1.2.8 314 10/7/2024
1.2.7 465 10/3/2024
1.2.6 221 10/2/2024
1.2.5 901 9/28/2024
1.2.4 2,192 9/22/2024
1.2.3 4,224 9/6/2024
1.1.2 9,311 7/18/2024
1.1.1 4,578 5/21/2024
1.0.1 537 5/15/2024