private StaticFileMiddleware CreateStaticFileMiddleware(
            RequestDelegate next,
            IWebHostEnvironment hostingEnv,
            ILoggerFactory loggerFactory,
            RapiDocOptions options)
        {
            var staticFileOptions = new StaticFileOptions
            {
                RequestPath  = string.IsNullOrEmpty(options.RoutePrefix) ? string.Empty : $"/{options.RoutePrefix}",
                FileProvider = new EmbeddedFileProvider(typeof(RapiDocMiddleware).GetTypeInfo().Assembly, EmbeddedFileNamespace),
            };

            return(new StaticFileMiddleware(next, hostingEnv, Options.Create(staticFileOptions), loggerFactory));
        }
        public RapiDocMiddleware(
            RequestDelegate next,
            IWebHostEnvironment hostingEnv,
            ILoggerFactory loggerFactory,
            RapiDocOptions options)
        {
            _options = options ?? new RapiDocOptions();

            _staticFileMiddleware = CreateStaticFileMiddleware(next, hostingEnv, loggerFactory, options);

            _jsonSerializerOptions = new JsonSerializerOptions()
            {
                AllowTrailingCommas = true,
            };
        }
示例#3
0
 /// <summary>
 /// Register the RapiDocUI middleware with provided options
 /// </summary>
 public static IApplicationBuilder UseRapiDocUI(this IApplicationBuilder app, RapiDocOptions options)
 {
     return(app.UseMiddleware <RapiDocMiddleware>(options));
 }