ABP成长系列2:动态API
2024-04-27 10:54:32摘要:前面我们介绍了Abp的模块化,号称能随意拆分,随意组装, 能各种复用,是真的超牛。 但是这样就可以了吗?虽然是可以任意组装了,比如A项目被拆分成A、B两个项目了。如何才能做的优雅,做的有意义? ABP的答案是这样的: 最强CP——ADO(Auto API+Dynamic Client+Options) 模块化===能力复用 Auto API Controller:轻松组合到一个进程,也可以模块化独立部署,拆分分布式 Dynamic C# Client:服务之间的调用(跟本地调用一样),都不用改代码,就可以轻松替换成分布式调用 定制化需求:Options选项模式完成定制 一、Auto API Controllers 创建应用程序服务后, 通常需要创建API控制器以将此服务公开为 HTTP(REST)API端点 典型的API控制器除了将方法调用重定向到应用程序服务并使用[HttpGet],[HttpPost],[Route]等属性配置REST API之外什么都不做 瘦控制器:本身是可以不要的 ABP可以按照惯例自动将应用程序服务配置为API控制器 大多数时候不关心它的详细配置,但它可以完全被自定义,而且还可以做好复用 Auto-API-Controllers自动API控制器,可以不用写控制器Action了,就可以直接把应用服务暴露成WebAPI 1. 配置方法 服务标记成IRemoteService 配置AbpAspNetCoreMvcOptions TypePredicate ConventionalControllers.Create 以上就完成了Auto-API-Controller 2. 自定义HttpMethod ABP在确定服务方法的HTTP Method时使用命名约定: Get:如果方法名称以GetList,GetAll或Get开头 Put:如果方法名称以Put或Update开头 Delete:如果方法名称以Delete或Remove开头 Post:如果方法名称以Create,Add,Insert或Post开头 Patch:如果方法名称以Patch开头 其他情况,Post 为 默认方式 自定义HTTP Method,则可以使用标准ASP.NET Core的属性 ([HttpPost], [HttpGet], [HttpPut]..…… 阅读全文
