Furion框架亮点之-动态WebAPI

时间:2020-12-08 12:35:32   收藏:0   阅读:11

Furion框架亮点之-动态WebAPI

最近研究小僧的.Net5框架Furion,其中不乏让人眼前一亮的新鲜玩意儿。于是想把一些亮点记录并作分享。

相关地址

项目
文档

动态WebAPI简述(摘自文档)

动态WebAPIFurion框架创造出一种更加灵活创建WebAPI控制器的方式,它对ASP.NET Core WebAPI进行了大量拓展和优化。
具有以下优点:

代码与效果

先来看看代码

public class PersonAppService : IDynamicApiController
{
    private readonly IRepository<Person> _personRepository;

    public PersonAppService(IRepository<Person> personRepository)
    {
        _personRepository = personRepository;
    }

    public Person Insert(Person person)
    {
        var entryEntity = _personRepository.InsertNow(person);
        return entryEntity.Entity;
    }

    public List<Person> GetAll(string keyword)
    {
        return _personRepository.Where(!string.IsNullOrEmpty(keyword), u => u.Name.Contains(keyword)).ToList();
    }
}

仅仅这样,Swagger上已经能显示接口
技术图片

使用方法

创建一个类继承IDynamicApiController接口 或 贴[DynamicApiController]特性即可。

动态WebAPI配置约定(摘自文档)

控制器默认约定

动作方法默认约定

请求谓词默认约定

路由地址默认约定

其他约定

原理解析(摘自文档)

控制器特性提供器

Furion 框架会在应用启动时注册 DynamicApiControllerFeatureProvider 控制器特性提供器,该提供器继承自 ControllerFeatureProvider 类。
接着重写 bool IsController(TypeInfo typeInfo) 方法,用来标识控制器类型。在 Furion 框架中,继承自 ControllerBase 类或 IDynamicApiController 接口或 [DynamicApiController] 特性都会被标记为控制器类型。

应用模型转换器

Furion 框架同时在应用启动时注册 DynamicApiControllerApplicationModelConvention 应用模型转换器,该转换器继承自 IApplicationModelConvention 接口。
接着实现 void Apply(ApplicationModel application) 接口方法。在该方法中配置控制器名称、路由、导出可见性及动作方法名称、路由、导出可见性等。

其他

更多操作请查阅文档
文档-动态WebAPI

期待小僧和Furion能带来更多惊喜!

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!