ASP.NET Core WebAPI接口文档

WebAPI接口文档

1、安装Swashbuckle.AspNetCore包

(1)Visual studio 20xx安装,打开程序包管理控制台搜索安装即可
dotnet add package Swashbuckle.AspNetCore --version 6.4.0
(2)Visual studio code安装
Install-Package Swashbuckle.AspNetCore -Version 6.4.0

2、在StartUp中注入依赖(3.1)

ConfigureServices中添加

//注册Swagger生成器,定义一个和多个Swagger 文档
			//using Microsoft.OpenApi.Models;
            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v6", new OpenApiInfo
                {
                    Version = "v6",
                    Title = "第一个Asp.Net Core 3.1 WebApi",
                    Description = "一个简单的TestsWebApi测试",
                    TermsOfService = new Uri("https://www.baidu.com"),
                    Contact = new OpenApiContact
                    {
                        Name = "璀璨的疯子",
                        Email = "1024@qq.com",
                        Url = new Uri("https://www.baidu.com")
                    },
                    License = new OpenApiLicense
                    {
                        Name = "璀璨的疯子",
                        Url = new Uri("https://www.baidu.com")
                    }
                });
            });
 			//添加跨域访问
            services.AddCors(options =>
            {
                options.AddPolicy("AllowAll", builder =>
                {
                    builder
                    .AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    //添加之后才可以从服务器段返回自定义的Headers
                    .WithExposedHeaders("X-Pagination");
                });
            });

Configure中添加

//添加跨域访问,一定要在UseHttpsRedirection之前
app.UseCors("AllowAll");

添加在最后或者添加在 if (env.IsDevelopment())中

//启用中间件服务生成Swagger作为JSON终结点
app.UseSwagger();
//启用中间件服务对swagger-ui,指定Swagger JSON终结点
//这里的v6与上面ConfigureServices的v6对应
app.UseSwaggerUI(c =>
{
 	c.SwaggerEndpoint("/swagger/v6/swagger.json", "Test Api V6");
	//添加这个以后网页访问Api就不需要加上/swagger,直接使用index.html即可
	c.RoutePrefix = string.Empty;
});

在这里插入图片描述

3、在Program中添加依赖注入(.net6)

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v6", new OpenApiInfo
    {
        Version = "v6",
        Title = "第一个Asp.Net Core 3.1 WebApi",
        Description = "一个简单的TestsWebApi测试",
        TermsOfService = new Uri("https://www.baidu.com"),
        Contact = new OpenApiContact
        {
            Name = "璀璨的疯子",
            Email = "1024@qq.com",
            Url = new Uri("https://www.baidu.com")
        },
        License = new OpenApiLicense
        {
            Name = "璀璨的疯子",
            Url = new Uri("https://www.baidu.com")
        }
    });
});
//跨域访问
builder.Services.AddCors(options =>
{
    options.AddPolicy("AllowAll", builder =>
    {
        builder
            //限制请求
            .WithOrigins(new string[] {"https://localhost:5001","http://localhost:5000","http://localhost:5173" })
        .WithMethods(new string[] {"GET","POST", "OPTIONS" })
        //.AllowAnyOrigin()//任意地址
        //.AllowAnyMethod()//任意方法
        .AllowAnyHeader();//任意头
        //添加之后才可以从服务器段返回自定义的Headers
        //.WithExposedHeaders("X-Pagination");
    });
});

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c =>
{
 	c.SwaggerEndpoint("/swagger/v6/swagger.json", "Test Api V6");
	//添加这个以后网页访问Api就不需要加上/swagger,直接使用index.html即可
	c.RoutePrefix = string.Empty;
});
}
//添加跨域访问,一定要在UseHttpsRedirection之前
app.UseCors("AllowAll");

4、显示接口说明

在xxxx.csproj中添加如下代码,添加的主要是PropertyGroup里面的内容,如果PropertyGroup里面内容则在下面添加即可

  <PropertyGroup>
    <!--原有的内容-->
    <TargetFramework>netcoreapp6.0</TargetFramework>
      <!--新添加的内容-->
	<GenerateDocumentationFile>true</GenerateDocumentationFile>
	  <NoWarn>$(NoWarn);1591</NoWarn>
  </PropertyGroup>

在services.AddSwaggerGen中添加如下代码

// using System.Reflection;
var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
c.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));

在xxxDbContext中添加如下#后面的代码

	#pragma warning disable CS1591
    public partial class YangWebApiContext : DbContext
    {
    ...........
    }
    #pragma warning disable CS1591

然后接口上的summary中的内容就显示在接口上了
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值