Skip to content

Latest commit

 

History

History
99 lines (70 loc) · 3.03 KB

README.md

File metadata and controls

99 lines (70 loc) · 3.03 KB

SwaggerUI.OpenApi

Build Status SwaggerUI.OpenApi

A package to simplify adding Swagger UI to .NET 9's Microsoft.AspNetCore.OpenApi.

Usage

In your Program.cs file Add app.AddSwaggerUI() and app.MapSwaggerUI():

builder.Services.AddOpenApi();
builder.Services.AddSwaggerUI();

var app = builder.Build();

app.MapOpenApi();
app.MapSwaggerUI();

If you want to add authentication to your Swagger you can use following helper methods:

builder.Services.AddOpenApi("v1", o =>
{
    o.AddOAuth2(authorizationUrl, tokenUrl, scopes);
});

builder.Services.AddSwaggerUI("v1", o =>
{
    o.AddOAuth2(clientId, scopes);
});

There are other helper methods for Duende Identity Server AddIdentityServer() and Auth0 AddAuth0.

You can check the samples directory for complete working examples.

Features

More snippet

Adds PowerShell and CMD cURL to the request snippet by default Request snippet

Styles

Easily change syntax highlighting style

builder.Services.AddSwaggerUI(o =>
{
    o.SyntaxHighlight = new SyntaxHighlightOptions
    {
        Theme = SyntaxHighlightThemeType.Arta
    };
});

Agate Arta Obsidian

Parameter validation

Displays the common validations in the parameters form by default

app.MapGet("/products",
    ([Range(0, 10000)] int id,
    [MinLength(3)][MaxLength(50)] string name,
    [RegularExpression("\\d\\d-\\d\\d")] string code) => id)

Validation

Authorization persistence

Persists authorization data by default and it would not be lost on browser close or refresh so you don't have to authenticate everytime.

Roadmap

✅ Basic UI

✅ Authentication

✅ Enable all the documents

✅ Implement all Swagger UI options

⏳ Improve test coverage

Acknowledgement

This project is based on Swashbuckle.AspNetCore.SwaggerUI. Thanks for their awesome work.

Pre-release builds

Get the package from here.

Build

Install the required .NET SDK and run:

$ dotnet build