AzureExtensions.Swashbuckle 3.3.2

Swagger and Swagger UI in Azure Functions by Swashbuckle

Install-Package AzureExtensions.Swashbuckle -Version 3.3.2
dotnet add package AzureExtensions.Swashbuckle --version 3.3.2
<PackageReference Include="AzureExtensions.Swashbuckle" Version="3.3.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add AzureExtensions.Swashbuckle --version 3.3.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AzureExtensions.Swashbuckle, 3.3.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install AzureExtensions.Swashbuckle as a Cake Addin
#addin nuget:?package=AzureExtensions.Swashbuckle&version=3.3.2

// Install AzureExtensions.Swashbuckle as a Cake Tool
#tool nuget:?package=AzureExtensions.Swashbuckle&version=3.3.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

AzureExtensions.Swashbuckle

OpenAPI 2/3 implementation based on Swashbuckle(Swagger) tooling for API's built with Azure Functions

This product aims to easily provide Swagger and Swagger UI of APIs created in Azure Functions


3.3.1-beta

  • #64 Support for authorization configuration
  • #60 Consolidated extensions and added one to support .net 5
  • Updated docs
  • Updated js/html/css libs
  • Some classed made public to support 3-party IoC.
  • Fixed several issues, related to versioning and XML comments.
  • Updated to UI v3.37.2
  • Updated to Swagger 5.6.3
  • Updated documentation
  • Ability to create multiple versions of documents, example added.
  • Added examples of a custom filter, improved test application

https://www.nuget.org/packages/AzureExtensions.Swashbuckle/3.3.1-beta


3.1.6

https://www.nuget.org/packages/AzureExtensions.Swashbuckle/3.1.6

Fixed #8, #9

Updated to UI v3.25.1

Updated to Swagger 5.4.1

Fixed base url for Swagger UI

Breaking:

Option and DocumentOption renamed to SwaggerDocOptions and SwaggerDocument respectivly and moved to AzureFunctions.Extensions.Swashbuckle.Settings namespace

Properties renamed:

PrepandOperationWithRoutePrefix ⇒ PrependOperationWithRoutePrefix

AddCodeParamater ⇒ AddCodeParameter

Properties added:

Added ability to configure SwaggerGen via ConfigureSwaggerGen

Added ability to override default url to Swagger json document (in case of reverse proxy/gateway/ingress) are used.

Size:

All the resources are places in zip archive in order to decrease result dll size by 338% (from 1.594kb to 472kb)


3.0.0

  • Updated to v3 Functions
  • Updated to 5.0.0 Swashbuckle.AspNetCore nugets
  • Merged PRs to fix issues related to RequestBodyType and Ignore attribute
  • application/json is a default media type.

Sample

https://github.com/vitalybibikov/azure-functions-extensions-swashbuckle/tree/master/src/AzureFunctions.Extensions.Swashbuckle/TestFunction

Update

Version 3.0.0

Getting Started

  1. Install the standard Nuget package into your Azure Functions application.
Package Manager : Install-Package AzureExtensions.Swashbuckle
CLI : dotnet add package AzureExtensions.Swashbuckle
  1. Add startup class on your Functions project.
[assembly: WebJobsStartup(typeof(SwashBuckleStartup))]
namespace YourAppNamespace
{
    internal class SwashBuckleStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
            //Register the extension
            builder.AddSwashBuckle(Assembly.GetExecutingAssembly());

        }
    }
}

or you can create a more defailed configuration like this:

        public void Configure(IWebJobsBuilder builder)
        {
            //Register the extension
            builder.AddSwashBuckle(Assembly.GetExecutingAssembly(), opts =>
            {
                opts.SpecVersion = OpenApiSpecVersion.OpenApi2_0;
                opts.AddCodeParameter = true;
                opts.PrependOperationWithRoutePrefix = true;
                opts.Documents = new []
                {
                    new SwaggerDocument
                    {
                        Name = "v1",
                        Title = "Swagger document",
                        Description = "Swagger test document",
                        Version = "v2"
                    }
                };
                opts.Title = "Swagger Test";
                //opts.OverridenPathToSwaggerJson = new Uri("http://localhost:7071/api/Swagger/json");
                opts.ConfigureSwaggerGen = (x =>
                {
                    x.CustomOperationIds(apiDesc =>
                    {
                        return apiDesc.TryGetMethodInfo(out MethodInfo methodInfo)
                            ? methodInfo.Name
                            : new Guid().ToString();
                    });
                });
            });
        }
  1. Add swagger and swagger ui endpoint functions on your project.
public static class SwaggerController
{
    [SwaggerIgnore]
    [FunctionName("Swagger")]
    public static Task<HttpResponseMessage> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Swagger/json")] HttpRequestMessage req,
        [SwashBuckleClient]ISwashBuckleClient swashBuckleClient)
    {
        return Task.FromResult(swashBuckleClient.CreateSwaggerDocumentResponse(req));
    }

    [SwaggerIgnore]
    [FunctionName("SwaggerUi")]
    public static Task<HttpResponseMessage> Run2(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Swagger/ui")] HttpRequestMessage req,
        [SwashBuckleClient]ISwashBuckleClient swashBuckleClient)
    {
        return Task.FromResult(swashBuckleClient.CreateSwaggerUIResponse(req, "swagger/json"));
    }
}
  1. Open Swagger UI URL in your browser.

If you does not changed api route prefix. Swagger UI URL is https://hostname/api/swagger/ui .

Options

Include Xml document file

AzureFunctions.Extensions.Swashbuckle can include xml document file.

  1. Change your functions project's GenerateDocumentationFile option to enable.

         builder.AddSwashBuckle(Assembly.GetExecutingAssembly(), opts =>
         {
             opts.XmlPath = "TestFunction.xml";
         });
    
  2. Add configration setting this extensions on your functions project's local.settings.json

  "SwaggerDocOptions": {
    "XmlPath": "TestFunction.xml"
  }

AzureExtensions.Swashbuckle

OpenAPI 2/3 implementation based on Swashbuckle(Swagger) tooling for API's built with Azure Functions

This product aims to easily provide Swagger and Swagger UI of APIs created in Azure Functions


3.3.1-beta

  • #64 Support for authorization configuration
  • #60 Consolidated extensions and added one to support .net 5
  • Updated docs
  • Updated js/html/css libs
  • Some classed made public to support 3-party IoC.
  • Fixed several issues, related to versioning and XML comments.
  • Updated to UI v3.37.2
  • Updated to Swagger 5.6.3
  • Updated documentation
  • Ability to create multiple versions of documents, example added.
  • Added examples of a custom filter, improved test application

https://www.nuget.org/packages/AzureExtensions.Swashbuckle/3.3.1-beta


3.1.6

https://www.nuget.org/packages/AzureExtensions.Swashbuckle/3.1.6

Fixed #8, #9

Updated to UI v3.25.1

Updated to Swagger 5.4.1

Fixed base url for Swagger UI

Breaking:

Option and DocumentOption renamed to SwaggerDocOptions and SwaggerDocument respectivly and moved to AzureFunctions.Extensions.Swashbuckle.Settings namespace

Properties renamed:

PrepandOperationWithRoutePrefix ⇒ PrependOperationWithRoutePrefix

AddCodeParamater ⇒ AddCodeParameter

Properties added:

Added ability to configure SwaggerGen via ConfigureSwaggerGen

Added ability to override default url to Swagger json document (in case of reverse proxy/gateway/ingress) are used.

Size:

All the resources are places in zip archive in order to decrease result dll size by 338% (from 1.594kb to 472kb)


3.0.0

  • Updated to v3 Functions
  • Updated to 5.0.0 Swashbuckle.AspNetCore nugets
  • Merged PRs to fix issues related to RequestBodyType and Ignore attribute
  • application/json is a default media type.

Sample

https://github.com/vitalybibikov/azure-functions-extensions-swashbuckle/tree/master/src/AzureFunctions.Extensions.Swashbuckle/TestFunction

Update

Version 3.0.0

Getting Started

  1. Install the standard Nuget package into your Azure Functions application.
Package Manager : Install-Package AzureExtensions.Swashbuckle
CLI : dotnet add package AzureExtensions.Swashbuckle
  1. Add startup class on your Functions project.
[assembly: WebJobsStartup(typeof(SwashBuckleStartup))]
namespace YourAppNamespace
{
    internal class SwashBuckleStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
            //Register the extension
            builder.AddSwashBuckle(Assembly.GetExecutingAssembly());

        }
    }
}

or you can create a more defailed configuration like this:

        public void Configure(IWebJobsBuilder builder)
        {
            //Register the extension
            builder.AddSwashBuckle(Assembly.GetExecutingAssembly(), opts =>
            {
                opts.SpecVersion = OpenApiSpecVersion.OpenApi2_0;
                opts.AddCodeParameter = true;
                opts.PrependOperationWithRoutePrefix = true;
                opts.Documents = new []
                {
                    new SwaggerDocument
                    {
                        Name = "v1",
                        Title = "Swagger document",
                        Description = "Swagger test document",
                        Version = "v2"
                    }
                };
                opts.Title = "Swagger Test";
                //opts.OverridenPathToSwaggerJson = new Uri("http://localhost:7071/api/Swagger/json");
                opts.ConfigureSwaggerGen = (x =>
                {
                    x.CustomOperationIds(apiDesc =>
                    {
                        return apiDesc.TryGetMethodInfo(out MethodInfo methodInfo)
                            ? methodInfo.Name
                            : new Guid().ToString();
                    });
                });
            });
        }
  1. Add swagger and swagger ui endpoint functions on your project.
public static class SwaggerController
{
    [SwaggerIgnore]
    [FunctionName("Swagger")]
    public static Task<HttpResponseMessage> Run(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Swagger/json")] HttpRequestMessage req,
        [SwashBuckleClient]ISwashBuckleClient swashBuckleClient)
    {
        return Task.FromResult(swashBuckleClient.CreateSwaggerDocumentResponse(req));
    }

    [SwaggerIgnore]
    [FunctionName("SwaggerUi")]
    public static Task<HttpResponseMessage> Run2(
        [HttpTrigger(AuthorizationLevel.Function, "get", Route = "Swagger/ui")] HttpRequestMessage req,
        [SwashBuckleClient]ISwashBuckleClient swashBuckleClient)
    {
        return Task.FromResult(swashBuckleClient.CreateSwaggerUIResponse(req, "swagger/json"));
    }
}
  1. Open Swagger UI URL in your browser.

If you does not changed api route prefix. Swagger UI URL is https://hostname/api/swagger/ui .

Options

Include Xml document file

AzureFunctions.Extensions.Swashbuckle can include xml document file.

  1. Change your functions project's GenerateDocumentationFile option to enable.

         builder.AddSwashBuckle(Assembly.GetExecutingAssembly(), opts =>
         {
             opts.XmlPath = "TestFunction.xml";
         });
    
  2. Add configration setting this extensions on your functions project's local.settings.json

  "SwaggerDocOptions": {
    "XmlPath": "TestFunction.xml"
  }

NuGet packages (1)

Showing the top 1 NuGet packages that depend on AzureExtensions.Swashbuckle:

Package Downloads
Service.Extensions.Functions
Extensions to provide consistent configurations and patterns for your service.

GitHub repositories (1)

Showing the top 1 popular GitHub repositories that depend on AzureExtensions.Swashbuckle:

Repository Stars
Azure-Samples/saga-orchestration-serverless
An orchestration-based saga implementation reference in a serverless architecture

Version History

Version Downloads Last updated
3.3.2 51,435 3/24/2021
3.3.1-beta 4,152 2/2/2021
3.3.0-beta 4,678 12/8/2020
3.2.2 309,899 6/17/2020
3.2.1-beta 455 6/9/2020
3.2.0-beta 508 6/4/2020
3.1.6 48,697 5/10/2020
3.1.5-beta 398 5/3/2020
3.1.2-beta 5,667 4/14/2020
3.1.1-beta 235 4/13/2020
3.1.0-beta 200 4/13/2020
3.0.2 51,391 2/29/2020
3.0.1 235 2/29/2020
3.0.0 2,943 2/24/2020
2.0.2 315 2/24/2020
2.0.1 3,052 12/28/2019
2.0.0 367 12/28/2019