后端接口开发

2018-07-23  本文已影响488人  高调的小丑

简单了解什么是领域驱动模型

代码框架 领域驱动分层

项目代码说明

以接口http://localhost:8995/api/BalanceSheet/GetBalanceSheet来说明

BalanceSheet表示控制器名,通常相应的控制器名称为:BalanceSheetController;
GetBalanceSheet表示方法名

/// <summary>
/// 获取收入支出表
/// </summary>
[RoutePrefix("api/BalanceSheet")]
public class BalanceSheetController :ApiController
{
    /// <summary>
    /// 不支持Get方法
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    [Route("Get")]
    public string Get()
    {
        return "不支持";
    }
    
    /// <summary>
    /// 获取收支表所有数据
    /// </summary>
    /// <returns></returns>
    [HttpPost]
    [Route("GetBalanceSheet")]
    public BasicResponse GetBalanceSheet()
    {
        returnAutofacExt.GetFromFac<BalanceSheetManageAp>().GetAllBalanceSheet();
    }
}

App层代码说明

private BalanceSheetService _balanceSheetService;

publicBalanceSheetManageApp(BalanceSheetServicbalanceSheetService)
{
    _balanceSheetService =balanceSheetService;
}
//通过构造函数,将接口注入到App层,之后会采用同样的方式来关联领域层和基础设施层

public BasicResponse GetAllBalanceSheet()
{
    BasicResponse response =newBasicResponse();
    try
    {
        var obj=_balanceSheetService.GetAllBalancehee();
        //跳转到方法
        if (obj != null)
            response.PostData = obj;
        else
        {
            response.RtnCode=(int)ReturnedCodeEnum.未查询到据;
            response.ErrorMsg=ReturnedCodeEnum.未查询到数据.oSting();
        }
    }
    catch (Exception ex)
    {
        response.RtnCode=(int)ReturnedCodeEnum.查询失败;
        response.ErrorMsg = ex.Message;
    }
    return response;
}
领域层代码

在领域层这边做业务逻辑处理,目前案例这边不需要处理逻辑,就不做说明了。

业务实现接口
public BalanceSheet GetBalanceSheet()
{
    var model=_sqlClient.Query<BalanceSheetModel>(BalaneShetModel.GetSql).FirstOrDefault();
    if (model == null)
        return null;
        
    return new BalanceSheet()
    {
        BSh_ID = model.BSh_ID,
        BSh_TimeStame = model.BSh_TimeStame,
        BSh_Time = model.BSh_Time,
        BSh_AccountBookid=model.BSh_AccountBookid,
        BSh_Content = model.BSh_Content,
        BSh_payerid = model.BSh_payerid,
        BSh_payeeid = model.BSh_payeeid,
        BSh_Amount = model.BSh_Amount,
        BSh_Litigant = model.BSh_Litigant,
        BSh_Remarks = model.BSh_Remarks,
        BSh_Certificates =model.BSh_Certificates,
        BSh_classA = model.BSh_classA,
        BSh_classB = model.BSh_classB,
        BSh_classC = model.BSh_classC,
        BSh_Status = model.BSh_Status,
        BSh_order = model.BSh_order
    };
}

这边是接口的实现,也就是基础层对数据的获取。

另外各层级里都用对应的model,这边是用了Automapper来进行映射的。附:AutoMapper入门

上一篇 下一篇

猜你喜欢

热点阅读