无法从asp.net core 2.0中的https:// localhost:44374 / swagger / v1 / swagger.json读取swagger JSON

时间:2018-05-27 23:44:01

标签: c# swagger asp.net-core-2.0 swagger-ui

我无法将swaggerUI添加到我的asp.net core 2项目中。它无法加载swagger.json文件。我正在为此文档使用自定义css和布局。下面是我的启动类和swagger的index.cshtml。

public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(provider => Configuration);
            services.AddTransient<IRegistrationRepository, ServiceUtilities>();
            services.AddTransient<IClientServiceConnector, ClientServiceValidation>();
            services.AddTransient<IEmailSender, EmailSender>();

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Swashbuckle.AspNetCore.Swagger.Info
                {
                    Title = "Onboarding API",
                    Version = "V1",
                    Description = "API to generate lead and return the url",
                    TermsOfService = "Please see terms and conditions",
                    Contact = new Swashbuckle.AspNetCore.Swagger.Contact {Name = "copa",Email = "support@copa.com.au",Url= "https://www.copa.com/" }
                });

                var basePath = ApplicationEnvironment.ApplicationBasePath;
                var xmlPath = Path.Combine(basePath, "copa.RegistrationApplication.xml");
                c.IncludeXmlComments(xmlPath);
            });

            services.AddCors(options =>
            {
                options.AddPolicy("AllowAll", policy =>
                {
                    policy.AllowAnyOrigin();
                    policy.AllowAnyHeader();
                    policy.AllowAnyMethod();
                });
            });
            services.AddMvc();
        }

public void Configure(IApplicationBuilder app, IHostingEnvironment enviroment)
        {
            if (enviroment.IsDevelopment())
            {
                //app.UseDeveloperExceptionPage();
                //app.UseMiddleware(typeof(ErrorHandlingMiddleware));
                app.UseExceptionHandler("/Registration/Error");
                //app.UseStatusCodePagesWithReExecute("/Registration/Error");
            }
            if (enviroment.IsStaging())
            {
                app.UseExceptionHandler("/Registration/Error");
                //app.UseDeveloperExceptionPage();
            }
            app.UseFileServer();                  
            app.UseSwagger();

            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
                c.RoutePrefix = "docs";
            });

            app.UseStaticFiles();
            app.UseCors("AllowAll");
            app.UseMvc(ConfigureRoutes);
        }

index.cshtml

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>copo API Docs</title>
    <link rel="icon" type="image/png" href="images/favicon-32x32.png" sizes="32x32" />
    <link rel="icon" type="image/png" href="images/favicon-16x16.png" sizes="16x16" />
    <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css' />
    <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css' />
    <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css' />
    <link href='skin.css' media='screen' rel='stylesheet' type='text/css' />
    <link href='css/reset.css' media='print' rel='stylesheet' type='text/css' />
    <link href='css/print.css' media='print' rel='stylesheet' type='text/css' />
    <link href='custom.css' media='screen' rel='stylesheet' type='text/css' />
    <script src='lib/object-assign-pollyfill.js' type='text/javascript'></script>
    <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script>
    <script src='lib/jquery.slideto.min.js' type='text/javascript'></script>
    <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script>
    <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script>
    <script src='lib/handlebars-4.0.5.js' type='text/javascript'></script>
    <script src='lib/lodash.min.js' type='text/javascript'></script>
    <script src='lib/backbone-min.js' type='text/javascript'></script>
    <script src='swagger-ui.min.js' type='text/javascript'></script>
    <script src='lib/highlight.9.1.0.pack.js' type='text/javascript'></script>
    <script src='lib/highlight.9.1.0.pack_extended.js' type='text/javascript'></script>
    <script src='lib/jsoneditor.min.js' type='text/javascript'></script>
    <script src='lib/marked.js' type='text/javascript'></script>
    <script src='lib/swagger-oauth.js' type='text/javascript'></script>

    <!-- Some basic translations -->
    <!-- <script src='lang/translator.js' type='text/javascript'></script> -->
    <!-- <script src='lang/ru.js' type='text/javascript'></script> -->
    <!-- <script src='lang/en.js' type='text/javascript'></script> -->

    <script type="text/javascript">
    $(function () {
      hljs.configure({
        highlightSizeThreshold: 5000
      });
      // Pre load translate...
      if(window.SwaggerTranslator) {
        window.SwaggerTranslator.translate();
      }
      window.swaggerUi = new SwaggerUi({
        url: "/swagger/v1/swagger.json",
        dom_id: "swagger-ui-container",
        supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
        onComplete: function(swaggerApi, swaggerUi){
          if(typeof initOAuth == "function") {
            initOAuth({
              clientId: "your-client-id",
              clientSecret: "your-client-secret-if-required",
              realm: "your-realms",
              appName: "your-app-name",
              scopeSeparator: " ",
              additionalQueryStringParams: {}
            });
          }
          if(window.SwaggerTranslator) {
            window.SwaggerTranslator.translate();
          }
        },
        onFailure: function(data) {
          log("Unable to Load SwaggerUI");
        },
        docExpansion: "list",
        jsonEditor: false,
        defaultModelRendering: 'schema',
        showRequestHeaders: false
      });
      window.swaggerUi.load();
      function log() {
        if ('console' in window) {
          console.log.apply(console, arguments);
        }
      }
  });
    </script>
</head>

<body class="swagger-section">
    <div id='header'>
        <img src="../Images/logo.png" />
    </div>

    <div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
    <div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body>
</html>

0 个答案:

没有答案