跳到主要内容
版本:2.2.0

ApiControllerBase

Controller

类与构造方法

Controller类需要继承于ApiControllerBase抽象类,该类为Controller下提供一系列返回方法和处理。 对应Controller的构造方法里可以接收所需要业务领域的ServiceLogger,具体写法如下

public class IpVisitPrePayController : ApiControllerBase
{
private readonly IpVisitPrePayService _ipVisitPrePayService;
private readonly ILogger _logger;

public IpVisitPrePayController(IpVisitPrePayService ipVisitPrePayService, ILogger<IpVisitPrePayController> logger)
{
this._ipVisitPrePayService = ipVisitPrePayService;
_logger = logger;
}
// 控制器代码...
}

API方法

对应API应当标识请求方法类型具体路由路径,如[HttpPost][Route("GetIpVisitPrePay")],也可以合到一起写作[HttpPost("GetIpVisitPrePay")]。如下面的方法。

目前开放的请求方法类型只有HttpGetHttpPost

[HttpGet("GetIpVisitPrePay")]
public async Task<ApiResponse> GetIpVisitPrePay(long seq)
{
var data = await _ipVisitPrePayService.GetIpVisitPrePay(seq);
if (data != null)
{
return SuccessResult(data);
}
else
{
return FaliedResult("未查询到相关信息");
}
}
请求

除了简单参数以外,多个参数的情况都使用Request请求类,即后缀携带Reuqest,该类存放在该业务领域对应的Dto项目下的Requests文件夹下

public async Task<ApiResponse> GetUsers(GetUsersRequest request)

HttpPost的情况下,不带任何标记的参数默认是从Body传入的,如果需要获取Query上的参数,则需要标记为[FromQuery],如果同时需要Body和Query里的参数,可以写成这样。

 public async Task<ApiResponse> GetUsers(GetUsersRequest request, [FromQuery] UsersFilterRequest filter)

在返回结果时,ApiControllerBase类为当前控制器提供了一系列的简单响应方法。

方法名备注
SuccessResult成功结果
SuccessListResult成功列表结果
FailedResult失败结果
CallResult直接调用服务结果