.net core web api中集成Swagger

Swagger是一款强大得api开发的辅助工具,能帮助我们省去编写api接口文档的这步操作,大大的减少了我们的工作量。

1.安装相应的包

Install-Package Swashbuckle.AspNetCore

或是通过Nuget管理工具完成安装

 

 2.在ConfigureServices中注册服务

 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo{ Title = "MyAPI", Version = "v1" }); });
SwaggerDoc方法的第二个参数需要的是OpenApiInfo类型,所以先在Startup中引入其对应的命名空间
using Microsoft.OpenApi.Models;

3.在Configure中使用

 app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
            }); 

4.启动项目并查看

IP:端口/swagger/index.html
例如:http://localhost:57558/swagger/index.html

 

 

至此就完成了swagger的集成,同时也可以完善OpenApiInfo的内容补充详细的介绍

  services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo{
                Version = "v1",//版本号
                Title = "MyAPI",//标题
                Description = "helloworld", //描述
                TermsOfService = new Uri("https://helloworld.com/terms"),//服务条款
                Contact = new OpenApiContact
                {
                    Name = "hello",//联系人
                    Email = "hello@163.com",//邮件地址
                    Url = new Uri("https://helloworld.com/"),//网址
                },
                License = new OpenApiLicense
                {
                    Name = "HTTP", //协议
                    Url = new Uri("https://hello.com/license"),//协议地址
                }
            }); });

 

 2.设置swaggerui为默认起始页

在launchSettings.json中配置如下

 "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "InfoPlatform": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }

3.添加接口注释

在项目上点击右键-》属性-》生成-》XML文档文件

 

 

 修改配置如下

 services.AddSwaggerGen(c => {
                var basePath = AppDomain.CurrentDomain.BaseDirectory;
                var xmlPath = Path.Combine(basePath, "InfoPlatform.xml");
                c.IncludeXmlComments(xmlPath);
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI")
});

接口添加文档注释

        /// <summary>
        /// 登陆接口
        /// </summary>
        /// <param name="userinfo"></param>
        /// <returns></returns>
        [HttpPost("Login")]
        public IActionResult Login([FromBody] UserInfo userinfo)

运行效果

 

posted @ 2020-12-18 21:51  hello-*-world  阅读(439)  评论(1)    收藏  举报