public static async Task RenderSwaggerDocument()

in src/Microsoft.Azure.WebJobs.Extensions.OpenApi/OpenApiTriggerFunctions.cs [34:97]


        public static async Task<IActionResult> RenderSwaggerDocument(
            [OpenApiHttpTriggerContext] OpenApiHttpTriggerContext openApiContext,
            HttpRequest req, string extension, ExecutionContext ctx, ILogger log)
        {
            log.LogInformation($"swagger.{extension} was requested.");

            var request = new HttpRequestObject(req);
            var result = default(string);
            var content = default(ContentResult);
            try
            {
                var auth = await openApiContext.SetApplicationAssemblyAsync(ctx.FunctionAppDirectory)
                                        .AuthorizeAsync(request)
                                        .ConfigureAwait(false);
                if (!auth.IsNullOrDefault())
                {
                    content = new ContentResult()
                    {
                        Content = auth.Payload,
                        ContentType = auth.ContentType,
                        StatusCode = (int)auth.StatusCode,
                    };

                    return content;
                }

                result = await openApiContext.Document
                                      .InitialiseDocument()
                                      .AddMetadata(openApiContext.OpenApiConfigurationOptions.Info)
                                      .AddServer(request, openApiContext.HttpSettings.RoutePrefix, openApiContext.OpenApiConfigurationOptions)
                                      .AddNamingStrategy(openApiContext.NamingStrategy)
                                      .AddVisitors(openApiContext.GetVisitorCollection())
                                      .Build(openApiContext.ApplicationAssembly, openApiContext.OpenApiConfigurationOptions.OpenApiVersion)
                                      .ApplyDocumentFilters(openApiContext.GetDocumentFilterCollection())
                                      .RenderAsync(openApiContext.GetOpenApiSpecVersion(openApiContext.OpenApiConfigurationOptions.OpenApiVersion), openApiContext.GetOpenApiFormat(extension))
                                      .ConfigureAwait(false);

                content = new ContentResult()
                {
                    Content = result,
                    ContentType = openApiContext.GetOpenApiFormat(extension).GetContentType(),
                    StatusCode = (int)HttpStatusCode.OK,
                };
            }
            catch (Exception ex)
            {
                log.LogError(ex.Message);

                result = ex.Message;
                if (openApiContext.IsDevelopment)
                {
                    result += "\r\n\r\n";
                    result += ex.StackTrace;
                }
                content = new ContentResult()
                {
                    Content = result,
                    ContentType = ContentTypeText,
                    StatusCode = (int)HttpStatusCode.InternalServerError,
                };
            }

            return content;
        }