zoukankan      html  css  js  c++  java
  • 使用swagger在netcorewebapi项目中自动生成文档

    一、背景

    随着前后端分离模式大行其道,我们需要将后端接口撰写成文档提供给前端,前端可以查看我们的接口,并测试,提高我们的开发效率,减少无效的沟通。在此情况下,通过代码自动生成文档,这种需求应运而生,swagger可以通过我们的代码和注释自动生成相关api接口文档,并且可以在线查看,实时更新,轻松测试,解决了我们的实际问题。

    二、创建Webapi项目,并添加swagger引用

    2.1 使用vs创建一个netcore2.2的webapi项目




    项目创建成功,Controllers文件夹中即为我们的api接口

    2.2 添加swagger包引用

    通过nuget添加swagger包,需要引用两个包,包名称为

    Swashbuckle.AspNetCore
    Swashbuckle.AspNetCore.Annotations
    

    三、创建接口并验证生成的api文档

    3.1 在项目的Startup.cs文件中添加引用using Swashbuckle.AspNetCore.Swagger;

    3.2 在ConfigureServices方法中添加如下代码

          services.AddSwaggerGen(options =>
                {
                    options.SwaggerDoc("v1", new Info() { Title = "Api", Version = "V1" });
                    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                    options.IncludeXmlComments(xmlPath);
                });
    

    3.3 在Configure方法中添加启用方法

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

    3.4 生成XML文件,并验证


    验证自动生成的文档

    我们的接口文档已经自动生成,且可测试

    3.5 编写Controller并验证

    创建控制器PersonController,继承自Controller,代码如下

       [ApiController]
        public class PersonController : Controller
        {
            /// <summary>
            /// 获取人员信息
            /// </summary>
            /// 
            /// <returns></returns>
            [HttpGet]
            [Route("api/Person/Index")]
            public List<Person> Index()
            {
                return new List<Person>()
                {
                    new Person() {Age = 10, Name = "张三"},
                    new Person() {Age = 20, Name = "李四"},
                };
            }
       }
    

    此时再打开swagger文档并查看

    可以看到我们的注释也在文档中显示了。

    四、小结

    swagger是一个非常强大的插件,可以帮助我们快速生成api文档,给前后端分离带来了极大的方便。
    参考文档:
    1.https://github.com/domaindrivendev/Swashbuckle.AspNetCore
    2.https://www.cnblogs.com/viter/p/10053660.html
    3.https://www.cnblogs.com/yilezhu/p/9241261.html

  • 相关阅读:
    一些链接
    svn
    the source attachment does not contain the source for the file StrutsPrepareAndExecuteFilter.class
    hibernate学习
    hibernate
    mysql front查看所有数据库
    SSD: Single Shot MultiBox Detector 论文解读,附代码
    YOLO算法-论文笔记
    Deep Learning菜鸡篇,我的第一个深度神经网络
    小白成长之路:初识python(六) --python线程池
  • 原文地址:https://www.cnblogs.com/zqllove/p/11238902.html
Copyright © 2011-2022 走看看