zoukankan      html  css  js  c++  java
  • 四、ABP 学习系列

    一、再XX.Web项目中用Nuget安装Swashbuckle.AspNetCore.SwaggerGen和Swashbuckle.AspNetCore.SwaggerUI

    二、在Startup.cs中添加如下代码

    public class Startup
        {
            public IServiceProvider ConfigureServices(IServiceCollection services)
            {
              
                services.AddMvc(options =>
                {
                    options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
                });
    
    
                //// Configure CORS for angular2 UI
                //services.AddCors(
                //    options => options.AddPolicy(
                //        _defaultCorsPolicyName,
                //        builder => builder
                //            .WithOrigins(
                //                // App:CorsOrigins in appsettings.json can contain more than one address separated by comma.
                //                _appConfiguration["App:CorsOrigins"]
                //                    .Split(",", StringSplitOptions.RemoveEmptyEntries)
                //                    .Select(o => o.RemovePostFix("/"))
                //                    .ToArray()
                //            )
                //            .AllowAnyHeader()
                //            .AllowAnyMethod()
                //    )
                //);
    
                // Swagger - Enable this line and the related lines in Configure method to enable swagger UI
                services.AddSwaggerGen(options =>
                {
                    options.SwaggerDoc("v1", new Info { Title = "M API", Version = "v1" });
                    options.DescribeAllEnumsAsStrings();                                        //Enum转字符串
                    options.DescribeAllParametersInCamelCase();                                 //开启驼峰规则
                    options.DocInclusionPredicate((docName, description) => true);              //显示备注
                    options.IncludeXmlComments(GetXmlCommentsPath("XX.Web"));                  // 注意:此处替换成所生成的XML documentation的文件名。
                    options.IncludeXmlComments(GetXmlCommentsPath("XX.Application"));          // 注意:此处替换成所生成的XML documentation的文件名。
                    // Define the BearerAuth scheme that's in use
                    options.AddSecurityDefinition("bearerAuth", new ApiKeyScheme()
                    {
                        Description = "JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"",
                        Name = "Authorization",
                        In = "header",
                        Type = "apiKey"
                    });
                    // Assign scope requirements to operations based on AuthorizeAttribute
                    options.OperationFilter<SecurityRequirementsOperationFilter>();
                });
    
            }
    
            public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
            {
    
                app.UseMvc(routes =>
                {
                    routes.MapRoute(
                        name: "default",
                        template: "{controller=Home}/{action=Index}/{id?}");
                });
    
    
                // Enable middleware to serve generated Swagger as a JSON endpoint
                app.UseSwagger();
                // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
                app.UseSwaggerUI(options =>
                {
                    options.InjectOnCompleteJavaScript("/swagger/ui/abp.js");
                    options.InjectOnCompleteJavaScript("/swagger/ui/on-complete.js");
                    options.SwaggerEndpoint("/swagger/v1/swagger.json", "M API V1");
                }); // URL: /swagger
            }
    
            /// <summary>
            /// 获取帮助文件路径
            /// </summary>
            /// <param name="name">文件名</param>
            /// <returns></returns>
            protected string GetXmlCommentsPath(string name)
            {
                return string.Format(@"{0}{1}.XML", AppDomain.CurrentDomain.BaseDirectory, name);
            }
        }
  • 相关阅读:
    Vim的分屏功能 | 酷壳 CoolShell.cn
    分享:Hadoop的Python框架指南
    KMP算法之另类图示分析
    C#cookie自动获取工具发布
    tmux Tutorial Split Terminal Windows Easily
    爱上MVC3~将系统的路由设置抽象成对象吧
    DDD~microsoft NLayerApp项目中的层次结构图
    不说技术~难得糊涂
    DDD~基础设施层
    基础才是重中之重~开发人员应用学会用throw
  • 原文地址:https://www.cnblogs.com/chuancheng/p/8196624.html
Copyright © 2011-2022 走看看