项目概述
SJM.ResultCore 是一个基于 .NET Core 的轻量级结果封装库,旨在标准化接口返回值格式,统一成功/失败结果的返回模型。项目通过简洁的泛型设计和扩展方法,帮助开发者快速构建结构清晰的 API 响应,适用于 WebAPI、微服务等场景。
核心功能
-
统一返回值模型
提供Result<T>
泛型类,封装数据、状态码和消息,避免接口返回格式混乱。示例代码:public Result<string> GetUserName() { return Result<string>.Success("张三"); }
-
状态码支持
内置ResultCode
枚举,涵盖常见状态(如成功、失败、未授权等),支持自定义扩展:return Result<int>.Fail(ResultCode.Unauthorized, "权限不足");
-
扩展方法
提供ToResult()
等扩展方法,简化与其他类型的交互:var data = new List<int> { 1, 2, 3 }; return data.ToResult(); // 自动转换为成功结果
使用场景
-
WebAPI 开发
确保所有接口返回一致的 JSON 结构,例如:{ "code": 200, "message": "操作成功", "data": { ... } }
-
微服务调用
标准化服务间通信的响应格式,降低解析复杂度。
安装与集成
通过 NuGet 安装:
dotnet add package SJM.ResultCore
在项目中引入命名空间后即可直接使用:
using SJM.ResultCore;
完整示例
以下示例展示从业务逻辑到控制器返回的全流程:
// 业务层
public Result<List<Product>> GetProducts()
{
try
{
var products = _repository.GetAll();
return products.ToResult();
}
catch (Exception ex)
{
return Result<List<Product>>.Error(ex.Message);
}
}
// 控制器
[HttpGet]
public IActionResult Products()
{
var result = _service.GetProducts();
return Ok(result); // 自动序列化为标准 JSON
}
性能与扩展性
- 轻量级设计
无额外依赖,仅基于 .NET Standard 2.0 构建。 - 自定义扩展
可通过继承ResultBase
实现个性化需求。
项目开源地址:Gitee 仓库 支持贡献和问题反馈。