asp.net mvc 集成swagger

在ASP.NET MVC项目中集成Swagger需要几个步骤:

  1. 通过NuGet安装Swashbuckle包。

  2. 在项目的App_Start文件夹中配置Swagger。

  3. 定义API的XML注释。

  4. 配置Swagger以使用这些注释。

以下是一个基本的配置示例:

首先,通过NuGet安装Swashbuckle包:

bash 复制代码
Install-Package Swashbuckle

然后,在App_Start文件夹中添加一个SwaggerConfig.cs文件,并配置Swagger:

cs 复制代码
using System.Web.Http;
using WebActivatorEx;
using Swashbuckle.Application;
 
[assembly: PreApplicationStartMethod(typeof(YourProject.SwaggerConfig), "Register")]
 
namespace YourProject
{
    public class SwaggerConfig
    {
        public static void Register()
        {
            var thisAssembly = typeof(SwaggerConfig).Assembly;
 
            GlobalConfiguration.Configuration 
                .EnableSwagger(c =>
                    {
                        c.SingleApiVersion("v1", "My API");
                        
                        // 设置XML注释路径
                        var xmlFile = $"{typeof(SwaggerConfig).Assembly.GetName().Name}.xml";
                        var xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, xmlFile);
                        c.IncludeXmlComments(xmlPath);
                    })
                .EnableSwaggerUi(c =>
                    {
                    });
        }
    }
}

确保项目属性中生成XML文档文件(通常在项目的Properties文件夹中的AssemblyInfo.cs文件中设置):

cs 复制代码
[assembly: XmlnsDefinition("http://schemas.datacontract.org/2004/07/YourProject.Models", "YourProject.Models")]
[assembly: Guid("YOUR-GUID-HERE")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyDescription("My ASP.NET MVC Project")]
[assembly: AssemblyProduct("MyProduct")]
[assembly: AssemblyTitle("MyProject")]
[assembly: AssemblyCompany("MyCompany")]
[assembly: AssemblyCopyright("Copyright © MyCompany 2023")]
[assembly: ComVisible(false)]

最后,在Global.asax.cs文件中添加以下代码以启用Swagger:

cs 复制代码
protected void Application_Start()
{
    // ...其他启动代码...
    SwaggerConfig.Register();
}

完成这些步骤后,运行项目并导航到/swagger路径(例如:http://localhost:port/swagger),你应该能够看到Swagger UI界面。

相关推荐
afumu1 小时前
Go 写一个只监听 127.0.0.1 的控制服务:鉴权、白名单、危险命令拦截
后端·安全·go
johnjincaaaa2 小时前
猿人学第 18 题「jsvmp 洞察先机」逆向通关实录
javascript·后端
用户4702784004052 小时前
C语言编译与链接
后端·开源
你三大爷2 小时前
从 Hessian 迁移到 protostuff:深嵌套模型反序列化耗时与高并发类加载锁的根治实战
后端·架构
IT枫斗者枫哥2 小时前
子线程断言失败,JUnit 为什么还显示通过?
java·后端
stark张宇4 小时前
Vibe Coding 入门实战:用 Claude Code 跑通 AI 产品开发流程(上)
后端·claude·vibecoding
考虑考虑4 小时前
JDK27中的Set.ofLazy
java·后端·java ee
乌暮6 小时前
Spring AOP 与 Spring 事务:用大白话彻底理解原理与实践
java·数据库·spring boot·后端·sql·学习·spring
我不会起名字3226 小时前
未接入最终读上限的参数:`websocketMaxMsgLen` 与 12.5 倍差距
后端·websocket·go·即时通讯·im·故障排查
一条Go7 小时前
接收方合并去重:同一个人为什么只该收到一次通知
后端·架构·github