动态WebAPI之Panda.DynamicWebApi

1.Nuget安装panda.dynamicwebapi

2.构建一个公共类(或者接口)继承自IDynamicWebApi,并引入特性[DynamicWebApi],如下

3.在需要的接口处继承第二步公共类

4.在Program.cs里面配置动态WebApi如下:

点击查看代码
            builder.Services.AddControllers();//Mvc
            // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
            builder.Services.AddEndpointsApiExplorer();

            builder.Services.AddSwaggerGen();

            // 自定义配置----添加动态WebApi 需放在 AddMvc 之后
            builder.Services.AddDynamicWebApi((options) =>
            {
                // 指定全局默认的 api 前缀
                options.DefaultApiPrefix = "/api";

                // 指定全局默认的去除控制器后缀
                options.RemoveControllerPostfixes = new List<string>() { "AppService" };

                // 清空API结尾,不删除API结尾;若不清空 CreatUserAsync 将变为 CreateUser
                options.RemoveActionPostfixes.Clear();

                // 自定义 ActionName 处理函数;
                options.GetRestFulActionName = (actionName) => actionName;
            });

            var app = builder.Build();

5.最后一步最重要(没有动态api生成不了):必须在需要生产动态API的service类上添加API对于版本号,如果没有配置版本默认会生成v1,带上正确版本号即可,如下:[ApiExplorerSettings(GroupName = "v1")]

6.新建的项目必须勾选使用控制器,否则报以下错误

原因:因为需要MVC的一些类来进行处理,所以必须放在AddMvc之后

7.NonDynamicWebApi的使用
添加特性 [NonDynamicWebApi] 可使一个类或者一个方法不生成API,[NonDynamicWebApi] 具有最高的优先级。

8.文件层级结构如下:

posted @   浮生若梦cmr  阅读(371)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示