zoukankan      html  css  js  c++  java
  • ASP.Net Core中使用Swagger

    我们先简单介绍下什么是Swagger,主要是用来干嘛??

    在Swagger诞生之前,我们通常在开发接口的过程中,需要前后端共同维护一个接口文档,然后大家按照接口文档的规范进行对接。接口文档俨然成了接口开发过程中不可或缺的一部分,然而对于大部分喜欢敲代码的同志们来说,写文档简直头疼,并且一般项目后期往往会由于疏忽未能及时更新文档,导致代码和接口文档不一致,这中间就有点道不清说不明了。

    正是在这种大环境下,Swagger及时出现,解放了前后端开发人员对接口文档的维护压力。Swagger实际上就是一个自动生成规范接口文档的工具,由服务端设计人员调用,我们只需要按照它的格式要求在代码中添加注释即可。

    好了,下面我们开始步入正题,如何快速搭建Swagger项目。

    首先,我们需要添加.NetCore Web API应用程序。

    然后,在项目中添加如下Nuget程序包。

    添加Swagger引用之后,在项目中注册并使用Swagger.

    首先,注册服务。

     1 public void ConfigureServices(IServiceCollection services)
     2         {
     3             services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
     4             //注册Swagger服务
     5             services.AddSwaggerGen(s =>
     6             {
     7                 //基本信息配置
     8                 s.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
     9                 {
    10                     Version = "v1",
    11                     Title = "个人测试",
    12                     Description = "仅供测试使用",
    13                     Contact = new Microsoft.OpenApi.Models.OpenApiContact { Email = "123@123.com" }
    14                 });
    15                 //包含应用程序对应的Swagger xml文档
    16                 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    17                 var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    18                 s.IncludeXmlComments(xmlPath);
    19             });
    20         }

    对于XML文档,我们还需要在生成时指定xml输出路径。我这里是指定的项目根目录。这里有个禁止显示警告配置:添加了1591(用于解决未添加xml说明的警告)

     

     然后,我们添加Swagger中间件。

     1  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
     2         {
     3             if (env.IsDevelopment())
     4             {
     5                 app.UseDeveloperExceptionPage();
     6             }
     7             else
     8             {
     9                 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    10                 app.UseHsts();
    11             }
    12             app.UseHttpsRedirection();
    13             app.UseMvc();
    14             //使用Swagger
    15             app.UseSwagger();
    16             app.UseSwaggerUI(s =>
    17             {
    18                 //指定json文件
    19                 s.SwaggerEndpoint("/swagger/v1/swagger.json", "My API");
    20                 //默认前缀swagger  此处去掉前缀 直接根目录访问
    21                 s.RoutePrefix = string.Empty;
    22             });
    23         }

    这里有个地方大家需要注意下:s.SwaggerEndpoint("/swagger/v1/swagger.json", "My API");指定json文件url的时候,url里面的v1需要和服务注册时:s.SwaggerDoc("v1", "")这里的v1对应一致

    最后,我们只需要在启动项目,在浏览器中输入URL:https://localhost:5001/index.html   端口以项目实际启动的端口为准.

    大家可以看到默认的接口方法中:

     这里的“Get方式获取”就是我们在项目接口方法体上添加的xml注释说明。

     项目搭建成功啦!!!文中如有描述不对的地方,欢迎各位小伙伴前来交流。

     

  • 相关阅读:
    依赖倒置原则(Dependency Inversion Principle)
    里氏替换原则(Liskov Substitution Principle)
    vue.js如何在标签属性中插入变量参数
    SpringBoot解决ajax跨域问题
    WebBrowser(IE) 与 JS 相互调用
    WebBrowser引用IE版本问题,更改使用高版本IE
    win10下端口被占用解决办法
    vim撤销undo与反撤销redo
    centos 安装sbt
    idea中使用scala运行spark出现Exception in thread "main" java.lang.NoClassDefFoundError: scala/collection/GenTraversableOnce$class
  • 原文地址:https://www.cnblogs.com/chenxf1117/p/12572181.html
Copyright © 2011-2022 走看看