首页 > 其他分享 >.net core 的 swagger 分组简单使用

.net core 的 swagger 分组简单使用

时间:2025-01-22 14:20:29浏览次数:1  
标签:core v1 WMS app groupName net swagger public

1.Programm中添加

     builder.Services.AddSwaggerGen(c =>
     {
         c.SwaggerDoc("v1", new OpenApiInfo { Title = "BarcodeAPI", Version = "v1" });
         c.SwaggerDoc("WMS", new OpenApiInfo { Title = "WMS", Version = "WMS" });
         c.DocInclusionPredicate((docName, apiDesc) =>
         {
             if (!apiDesc.TryGetMethodInfo(out MethodInfo methodInfo)) return false;

             var groupName = methodInfo.DeclaringType.GetCustomAttribute<ApiGroupAttribute>()?.GroupName ?? "v1";
             return groupName == docName;
         });
     });
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "BarcodeAPI v1");
        c.SwaggerEndpoint("/swagger/WMS/swagger.json", "WMS");
    });
}

2.增加一个特性

[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
public class ApiGroupAttribute : Attribute
{
    public string GroupName { get; }

    public ApiGroupAttribute(string groupName)
    {
        GroupName = groupName;
    }
}

未添加特性的默认为v1

 

标签:core,v1,WMS,app,groupName,net,swagger,public
From: https://www.cnblogs.com/alannxu/p/18685767

相关文章

  • TensorFlow迁移学习Resnet50预测10-monkey-species
     In [15]:fromtensorflowimportkerasimporttensorflowastfimportnumpyasnpimportpandasaspdfromscipyimportndimageimportmatplotlib.pyplotasplt In [2]:resnet50=keras.applications.ResNet50(include_top=False,po......
  • .NET9 AOT部署
    概念AOT是Ahead-of-Time的缩写,AOT是将C#程序提前编译为机器代码(通常为平台特定的二进制文件),在应用程序启动之前完成编译过程。微软官方文档是这样说的将应用程序发布为本机AOT会生成一个自包含的应用程序,并且已提前(AOT)编译为本机代码。原生AOT应用程序具有更快的启动时......
  • 请说说canvas的closePath()与lineTo()的区别是什么?
    在前端开发中,Canvas是一个非常有用的工具,它允许开发者在网页上绘制图形。closePath()和lineTo()是CanvasRenderingContext2D接口中的两个方法,它们在绘制路径时有着不同的作用。lineTo(x,y)lineTo(x,y)方法用于在画布上创建一条从当前点到指定(x,y)坐标的直线。当......
  • 界面控件 DevExpress WinForms v24.2 新版亮点:正式支持.NET 9
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件v24.2日前已经全新发布,新......
  • GRFB UNet——基于多尺度注意网络盲道检测算法实现与模型C++部署
    GRFBUNet——基于多尺度注意网络盲道检测算法实现与模型C++部署1.概述盲道是视障人士安全出行的重要辅助设施。识别盲道的形状和位置,对于增强视障人士的自主移动能力至关重要,而视觉分割技术正是应对这一挑战的有效工具。为了显著提升盲道分割的精确度和稳定性,本文提出了......
  • 当ASP.NET API接口被刷:全面应对指南
    一、引言在当今数字化的网络世界中,ASP.NETAPI作为后端服务与前端应用、第三方系统交互的桥梁,扮演着至关重要的角色。然而,令人头疼的是,API接口常常遭受恶意刷取的威胁。想象一下,大量毫无意义的恶意请求如潮水般涌来,服务器资源被无情地消耗,合法用户的请求只能在一旁苦苦等......
  • 深入探索Math.NET:开启高效数值计算之旅
    一、引言在当今数字化时代,数值计算已然成为科学研究、工程设计、金融分析等众多领域的核心驱动力。从探索宇宙奥秘的物理学计算,到优化建筑结构的土木工程设计,再到预测市场趋势的金融建模,数值计算的身影无处不在,它为解决复杂问题提供了高效且精准的手段。在.NET平台的广阔......
  • 08使用EFCore进行增删改查 - ASP.NET Core WebAPI
    文章目录一、如何在控制器中使用EFCore1.注册服务2.获取db对象3.使用db对象进行crud二、如何在筛选器中使用EFCore1.与控制器类中同样操作2.注意事项一、如何在控制器中使用EFCore1.注册服务在program.cs文件中添加以下代码。builder.Services.AddDbContext<App......
  • 【Knife4j与Swagger的区别是什么?】
    Knife4j和Swagger都是用于生成API文档的工具,但它们之间存在一些区别:1.起源与定位Swagger:是一个广泛使用的开源工具链,主要用于设计、构建、记录和使用RESTful网络服务。Swagger包括一系列工具,如SwaggerEditor(用于编写API文档)、SwaggerUI(用于展示API文档)等。Knife4j:是为J......
  • .NET Core 中如何构建一个弹性的 HTTP 请求机制?
    1.理解弹性HTTP请求机制什么是弹性?弹性是指系统在面对故障或异常情况时,能够保持或快速恢复到正常状态的能力。在HTTP请求的上下文中,弹性意味着当请求失败时,系统能够自动采取一系列措施(如重试、降级、断路等)来确保请求最终成功或优雅地处理失败。为什么需要弹性HTTP请求......