doc:添加cicd文档模块
This commit is contained in:
60
Yi.Doc.Md/02.框架功能模块教程/02.动态Api.md
Normal file
60
Yi.Doc.Md/02.框架功能模块教程/02.动态Api.md
Normal file
@@ -0,0 +1,60 @@
|
||||
## 简介
|
||||
控制器层通常不包含业务的,我们控制器的代码经常是如下:
|
||||
``` cs
|
||||
[HttpGet]
|
||||
[route("Info")]
|
||||
pulic IActionResult GetInfo()
|
||||
{
|
||||
retrun Ok(_service.GetInfo());
|
||||
}
|
||||
```
|
||||
我们不仅要创建控制器文件,还要写出应用层到控制器的方法,将业务的数据通过控制器暴露出去
|
||||
> 控制器只做转发,没有做任何事情,形成了大量的冗余代码
|
||||
|
||||
## 如何使用
|
||||
> 推荐直接在应用层中直接使用
|
||||
|
||||
使用动态Api,需要3个条件
|
||||
1. 任何一个类,实现`IRemoteService`接口
|
||||
2. 该类需要加入DI容器
|
||||
3. 在管道模型中,配置动态Api服务:
|
||||
|
||||
> 通常我们直接继承`ApplicationService`即可,因为该类实现了`IRemoteService`
|
||||
``` cs
|
||||
//动态Api
|
||||
Configure<AbpAspNetCoreMvcOptions>(options =>
|
||||
{
|
||||
options.ConventionalControllers.Create(typeof(YiAbpApplicationModule).Assembly, options => options.RemoteServiceName = "default");
|
||||
});
|
||||
```
|
||||
|
||||
根据方法名自动映射Http方法及路由
|
||||
例如:
|
||||
- GetInfo:Get请求
|
||||
- UpdateInfo:Put请求
|
||||
- RemoveInfo: Del请求
|
||||
- CreateInfo: Post请求
|
||||
|
||||
|
||||
## 完整例子
|
||||
``` cs
|
||||
using Volo.Abp.Application.Services;
|
||||
|
||||
namespace Yi.Abp.Application.Services
|
||||
{
|
||||
public class TestService : ApplicationService
|
||||
{
|
||||
/// <summary>
|
||||
/// 你好世界
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
public string GetHelloWorld(string? name)
|
||||
{
|
||||
return name ?? "HelloWord";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user