Microsoft.Restier.AspNetCore.Swagger 1.1.1-CI-20240706-232326

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

// Install Microsoft.Restier.AspNetCore.Swagger as a Cake Tool
#tool nuget:?package=Microsoft.Restier.AspNetCore.Swagger&version=1.1.1-CI-20240706-232326&prerelease                

Microsoft Restier - OData Made Simple

Releases   |   Documentation   |   OData v4.01 Documentation

Swagger for Restier ASP.NET Core

This package helps you quickly implement OpenAPI's Swagger.json and Swagger UI in your Restier service in just a few lines of code.

Supported Platforms

Microsoft.Restier.AspNetCore.Swagger 1.1 currently supports the following platforms:

  • ASP.NET Core 6.0, 7.0, and 8.0 via Endpoint Routing

Getting Started

Building OpenAPI into your Restier project is easy!

Step 1: Install Microsoft.Restier.AspNetCore.Swagger

  • Add the package above to your API project.
  • [Optional] Change the version of your Restier packages to 1.*-* so you always get the latest version.

Step 2: Convert to Endpoint Routing (Part 1)

  • Add the new parameter to the end of your services.AddRestier() call:
    services.AddRestier((builder) =>
    {
        ...
    }, true); // <-- @robertmclaws: This parameter adds Endpoint Routing support.

Step 3: Register Swagger Services

  • Add the line below immediately after the services.AddRestier() call:
services.AddRestierSwagger();
  • There is an overload to this method that takes an Action<OpenApiConvertSettings> that will let you change the configuration of the generated Swagger definition.

Step 4: Convert to Endpoint Routing & Use Swagger (Part 2)

  • Replace your existing Configure code with the following (don't forget your customizations):
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseRestierBatching();
        app.UseRouting();

        app.UseAuthorization();
        // @robertmclaws: This line is optional but helps with leveraging ClaimsPrincipal.Current for cross-platform business logic.
        app.UseClaimsPrincipals();

        app.UseEndpoints(endpoints =>
        {
            endpoints.Select().Expand().Filter().OrderBy().MaxTop(100).Count().SetTimeZoneInfo(TimeZoneInfo.Utc);
            endpoints.MapRestier(builder =>
            {
                builder.MapApiRoute<YOURAPITYPEHERE>("ROUTENAME", "ROUTEPREFIX", true);
            });
        });

        app.UseRestierSwagger(true);
    }
  • On the last line, the boolean specifies whether or not to use SwaggerUI. If you want to control more of the UI configuration, use services.Configure<SwaggerUIOptions>(); in your ConfigureServices() method.

Step 5: Browse Swagger Resources

  • Browse to /swagger/ROUTENAME/swagger.json to see the generated Swagger definition.
  • Browse to /swagger to see the Swagger UI.

Reporting Security Issues

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter. You can also find these instructions in this repo's SECURITY.md.

Contributors

Special thanks to everyone involved in making Restier the best API development platform for .NET. The following people have made various contributions to this package:

External
Cengiz Ilerler
Robert McLaws
Micah Rairdon
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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. 
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
1.1.1 922 7/12/2024
1.1.1-rc.1.20240710.0 40 7/10/2024
1.1.1-CI-20240706-232326 98 7/6/2024
1.1.0 1,028 11/28/2023
1.1.0-rc.2.20231127.0 77 11/27/2023
1.1.0-rc.2.20231126.1 78 11/26/2023
1.1.0-rc.2.20231126.0 70 11/26/2023
1.1.0-CI-20231125-225528 115 11/25/2023