标签:mic mapper 学习 log web title tst EDA 查看
Mario是一个基于.NET Core的简单快速开发框架
GitHub:https://github.com/deeround/Mario
基于.NET Core 2.2 集成常用三方组件
AutoMapper
FluentValidation
Newtonsoft.Json
NLog
Swashbuckle
支持jwt认证、支持API资源权限验证
支持swagger中API分组显示
所有服务自动注入,无需手动注入
......
中小型项目有时候并不需要各种复杂的驱动设计,复杂的分层设计,只需简单业务逻辑开发。Mario框架就是为了简化我们开发,减少各种繁琐的配置注入,只需关注于业务逻辑开发本身。
项目 | 说明 |
---|---|
Mario.Core | 底层核心库 |
Mario.Data | 数据封装库 |
Mario.Mvc | WebApi封装库 |
Mario.Web | WebApi业务库 |
WangSql | 数据底层库 |
当我们业务非常简单,我们连实体类都不写的应用场景,就是简单直接干,只用写API,直接在控制器写业务就行了。
在Test\Controllers下添加Test控制器
public class TestController : ApiController
{
/// <summary>
/// 演示使用原始方法和扩展方法查询数据
/// </summary>
/// <returns></returns>
[HttpGet()]
public IList<Dictionary<string, object>> GetList()
{
return SqlMapper.Query<Dictionary<string, object>>("select * from T_SYS_USER", null).ToList(); //原始方法
//return SqlMapper.ListSod("select * from T_SYS_USER"); //扩展方法
}
/// <summary>
/// 分页查询
/// </summary>
/// <returns></returns>
[HttpGet()]
public PageData<StrObjDict> GetPage(string name)
{
string sql = "select * from T_SYS_USER where 1=1";
StrObjDict sod = new StrObjDict();
if (!string.IsNullOrEmpty(name))
{
sql += $" and USERNAME like '%$USERNAME$%'";
sod.Add("USERNAME", name);
}
//排序设置
sql += $" order by USERNAME desc";
return SqlMapper.PageSod(sql, sod, 1, 20, out int total);
}
/// <summary>
/// 定义好入参,但不定义出参格式
/// 方便扩展入参,也可使用swagger直接测试,但是前端无法通过swagger查看接口出参格式,只有请求后才知道出参格式
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
[HttpGet()]
public IList<StrObjDict> GetByName(string name)
{
//return SqlMapper.ListSod("select * from T_SYS_USER where USERNAME=#USERNAME#", name); //写法1
return SqlMapper.ListSod("select * from T_SYS_USER where USERNAME=#USERNAME#", new StrObjDict() { { "USERNAME", name } }); //写法1
}
/// <summary>
/// 这个是上面方法另一种写法
/// 这种方法不固定入参,可随时添加删除入参,但是无法使用swagger直接测试,可使用postman等其他接口工具测试
/// 这种方法前端入参和出参都不知道格式,需要前后端提前约定好出入参
/// </summary>
/// <returns></returns>
[HttpGet()]
public IList<StrObjDict> GetByNameNoParam()
{
var param = ApiContext.GetRequestParam();
string name = param.GetString("name");
//return SqlMapper.ListSod("select * from T_SYS_USER where USERNAME like '%$USERNAME$%'", name); //写法1
return SqlMapper.ListSod("select * from T_SYS_USER where USERNAME=#USERNAME#", new StrObjDict() { { "USERNAME", name } }); //写法1
}
}
包含dto和实体相互转换、实体验证、登录验证、加入service层等
主要用于展示框架更多功能,实际上框架还有更多特性供探索。
具体代码请查看GitHub
GitHub link https://github.com/deeround/Mario
Mario框架仅仅提供给大家学习使用,现在只有后端,暂无前端,后期可能考虑使用vue做个admin模板,目前还在完善中......
标签:mic mapper 学习 log web title tst EDA 查看
原文地址:https://www.cnblogs.com/deeround/p/12320813.html