动态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.文件层级结构如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?