跳到主要内容

BestPractice-最佳实践

首先需要通过nuget引入 Collapsenav.Net.Tool.DynamicApi

简单的注册代码

以下是最简陋的情况下的注册代码

using Collapsenav.Net.Tool.DynamicApi;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllers().AddDynamicWebApi();
var app = builder.Build();
app.MapControllers();
app.Run();
备注

相比AutoInject, DynamicApi 的注册非常简单, 只需要在 AddControllers 后面加一个 AddDynamicWebApi 即可

提示

DynamicApi 可以和 AutoInject 一起使用, 只需要在使用 AutoInject 的基础上, 在 AddControllersAsServices 之前 AddDynamicWebApi 即可

using Collapsenav.Net.Tool.AutoInject;
using Collapsenav.Net.Tool.DynamicApi;
var builder = WebApplication.CreateBuilder(args);
builder.Host.UseAutoInjectProviderFactory();
builder.Services.AddControllers().AddDynamicWebApi().AddControllersAsServices();
/*
其他注册的服务
*/
builder.Services.AddAutoInjectController();

var app = builder.Build();
app.MapControllers();
app.Run();

标记需要转成Api的类

假设我们有这样一个简单的class TestApi

public class TestApi : IDynamicApi
{
public async Task<string> Get()
{
return await Task.FromResult("2333");
}
}
备注

"实现" IDynamicApi 就完成了标记

运行之后会生成一个 {HOST}/TestApi/GetGet 类型的接口

可以使用 HttpGet,HttpPost,HttpPut,HttpDelete 注解标记生成的接口类型

也可以根据名称自动判断, 现阶段的规则非常简陋

  • 以 Get,Query 开头的方法为 Get 类型
  • 以 Put,Update 开头的方法为 Put 类型
  • 以 Delete,Remove 开头的方法为 Delete 类型
  • 其他的默认为 Post 类型

Demo

我的GitHub上有提供对应的demo

通过现成的代码大概会有更加直观的了解