XML 1XML 2

接下去在框架中参与 Swagger  并颁发  到 IIS

summary 用来叙述 方法的效劳

XML 3

XML 4

View Code

今后会讲述一下 框架的基础知识  比如 
应用程序的启航、日子、路由、静态文件、WebSockteS  等,

在起步的时候

(6) 在框架自动生成的 Api 控制器里Post的法门上进入
评释(其余形式也可以,我只是比喻)

XML 5XML 6

 

    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
      //发布程序出现错误帮助定位详细错误信息
      // .UseKestrel()
      //.UseContentRoot(Directory.GetCurrentDirectory())
      //.UseSetting("detailedErrors", "true")
      //.UseIISIntegration()

      .CaptureStartupErrors(true)
                .UseStartup<Startup>()
                .Build();



    }

View Code

 XML 7

XML 8

诠释的意义如下

View Code

 

 

XML 9XML 10

补偿一下出示结果,初叶的时候忘记截图了

        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();
            app.UseSwagger();
            // 指定站点
            app.UseSwaggerUI(x =>
            {
                //做出一个限制信息 描述
                x.SwaggerEndpoint("/swagger/v1/swagger.json", "TwBusManagement API V1");
                //显示在发出请求时发送的标题
                x.ShowRequestHeaders();

            });
        }

 

 

public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddSwaggerGen(x =>
            {
                x.SwaggerDoc("v1", new Info
                {
                    Version = "v1", //版本号
                    Title = "Szl接口文档", //标题
                    Description = "RESTful API ",
                    TermsOfService = "",//服务的条件
                    //第一个参数Name 创建人名称/也可以是 负责人名称     第二个参数 联系邮箱
                    Contact = new Contact { Name = "Su", Email = "szl_0000@126.com", Url = "北京" }
                });

                //获取设置配置信息的 的路径对象   swagger界面配置
                var basePath = PlatformServices.Default.Application.ApplicationBasePath;
                var xmlPath = Path.Combine(basePath, "AspNetCoreApiSwagger.xml");
                x.IncludeXmlComments(xmlPath);
                x.OperationFilter<HttpHeaderOperation>(); // 添加httpHeader参数
            });
        }

 注意那里 XML名称是还是不是错误

User 类

XML 11

(11)打开IIS服务  中的模块

View Code

XML 12XML 13

XML 14

remarks 用来叙述传入的参数格式/也得以把调用的值放入其中

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;


//添加引用
using Swashbuckle.AspNetCore.Swagger;
using Swashbuckle.AspNetCore.SwaggerGen;
using Microsoft.AspNetCore.Authorization;
namespace WebCoreApi
{
    public class HttpHeaderOperation : IOperationFilter
    {
        /// <summary>
        /// 实现接口
        /// </summary>
        /// <param name="operation"></param>
        /// <param name="context"></param>
        public void Apply(Operation operation, OperationFilterContext context)
        {
            if (operation.Parameters == null)
            {
                operation.Parameters = new List<IParameter>();
            }

            var actionAttrs = context.ApiDescription.ActionAttributes();

            var isAuthorized = actionAttrs.Any(a => a.GetType() == typeof(AuthorizeAttribute));

            if (isAuthorized == false) //提供action都没有权限特性标记,检查控制器有没有
            {
                var controllerAttrs = context.ApiDescription.ControllerAttributes();

                isAuthorized = controllerAttrs.Any(a => a.GetType() == typeof(AuthorizeAttribute));
            }

            var isAllowAnonymous = actionAttrs.Any(a => a.GetType() == typeof(AllowAnonymousAttribute));

            if (isAuthorized && isAllowAnonymous == false)
            {
                operation.Parameters.Add(new NonBodyParameter()
                {
                    Name = "Authorization",  //添加Authorization头部参数
                    In = "header",
                    Type = "string",
                    Required = false
                });
            }
        }
    }
}

response 定义多个重临状态

XML 15

上一步大家创设好CoreApi

OK  先天就做到了,

        /// <summary>
        /// AspNet Core  Post请求
        /// </summary>
        /// <param name="value">User类</param>
        /// <remarks>
        ///访问参数
        ///     POST 
        ///     {  
        ///        "value": "0e7ad584-7788-4ab1-95a6-ca0a5b444cbb",  
        ///     }  
        ///   
        /// </remarks> 
        /// <response code="201">返回新创建项</response>
        /// <response code="400">如果为空时</response> 

        [HttpPost]
        [ProducesResponseType(typeof(User), 201)]
        [ProducesResponseType(typeof(User), 400)]
        public void Post([FromBody]User value)
        {
        }

XML 16XML 17

等到基础描述过后,在框架中投入一些我闷在实战中用到的,希望大家多多指出错误不足之处,那是自我的学习。

XML 18

XML 19XML 20

(9)  发表   以文件夹发布就行

 

(8)设置 项目标生成 输出路径

(13)  尽管在运作陈设的API  发生了错误

(4) 添加 Swagger 的·服务章程 在  Startup中的 
ConfigureServices方法里

View Code

(5)添加 Swagger 启动项 在  Startup中的  Configure方法里

 

XML 21

(1)首先点击看重项》管理Nuget包

/// <summary>
    /// 用户类
    /// </summary>
    public class User
    {
        /// <summary>
        /// 用户ID
        /// </summary>
        public int UserID { get; set; }
        /// <summary>
        /// 用户名称
        /// </summary>
        public int UserName { get; set; }
        /// <summary>
        /// 用户年龄
        /// </summary>
        public int UserAge { get; set; }
    }

(12)查看是或不是有  AspNetCoreModule  没有进行安装
我是在海外的网站下载的

我们在  Program  中加入  如代码所示  可以扶持大家规范定义的难题所在

(2)输入 Swashbuckle.aspnetCore  比如:

(7)在框架中   添加 AspNetCoreApiSwagger.xml 文件  一定要专注的是 
xml 文件必须定义一个根节点 不然会报错  ,XML的习性   改为 始终复制  
(XML文件在 第四手续中有应用)

有人在实践中境遇了没有注释的难点

View Code

(10)安排IIS 说一下瞩目点     改成无托管代码

图中多少个Swagger 插件要求大家设置   注意:我那里已经安装过突显的是
卸载

XML, 

 (3) 在框架中 添加Swagger 表明的扶植类   HttpHeaderOperation 
下面是自我总体的.CS文件

XML 22

代码中读取的注释音讯在
AspNetCoreApiSwagger.xml中,项目启动后会把注释新闻变更到AspNetCoreApiSwagger.xml中

XML 23

相关文章

网站地图xml地图