APIJSON:用JSON自动生成API,告别手写CRUD!【.NET 8 集成案例,也支持JAVA】
🎀🎀🎀代码之美系列目录🎀🎀🎀
一、C# 命名规则规范
二、C# 代码约定规范
三、C# 参数类型约束
四、浅析 B/S 应用程序体系结构原则
五、浅析 C# Async 和 Await
六、浅析 ASP.NET Core SignalR 双工通信
七、浅析 ASP.NET Core 和 MongoDB 创建 Web API
八、浅析 ASP.NET Web UI 框架 Razor Pages/MVC/Web API/Blazor
九、如何使用 MiniProfiler WebAPI 分析工具
十、浅析 .NET Core 中各种 Filter
十一、C#.Net筑基-类型系统
十二、C#.Net 筑基-运算符
十三、C#.Net筑基-解密委托与事件
十四、C#.Net筑基-集合知识大全
十五、C#.Net筑基 - 常见类型
十六、C#.NET体系图文概述—2024最全总结
十七、C# 强大无匹的模式匹配,让代码更加优雅
十八、C# 中的记录类型简介
十九、C# 异步编程模型【代码之美系列】
二十、C#高级篇 反射和属性详解【代码之美系列】
二十一、.NET Core 中获取各种路径的的方法汇总【代码之美】
二十二、【C#实战】动态模板替换:根据Model字段名称自动匹配替换值【代码之美】
二十三、.NET 集成 Velocity 模板引擎实现动态代码生成(高性能+易扩展)
二十四、在 .NET 8/9 中使用 AppUser 进行 JWT 令牌身份验证
二十五、.NET8 中间件与过滤器的对比:深入解析与应用场景
二十六、一文快速了解.NET项目文件(.csproj) ,基础而重要的文件【代码之美系列】
文章目录
- 🎀🎀🎀代码之美系列目录🎀🎀🎀
- 前言
- 一、 什么是 APIJSON?为什么它是“效率神器”?
- 二、 .NET 8 为何是 APIJSON 的“最佳拍档”?
- 三、 实战:在 .NET 8 项目中集成 APIJSON
- 第 1 步:创建项目并安装依赖
- 第 2 步:配置数据库连接
- 第 3 步:创建数据模型(以 User 和 Post 为例)
- 第 4 步:核心配置与服务注册
- 四、 体验奇迹:无需编码,直接调用!
- 1. 查询单个用户 (GET)
- 2. 复杂查询:获取用户及其所有文章 (联表查询!)
- 3. 新增数据 (POST)
- 4. 修改数据 (PUT)
- 5. 删除数据 (DELETE)
- 五、 高级特性与权限控制
- 六、 总结
前言
还在为每个页面手写增删改查接口而烦恼吗?还在为前后端接口联调而扯皮吗?.NET 8 遇上 APIJSON,带你体验“零代码”API后端的极致效率!

一、 什么是 APIJSON?为什么它是“效率神器”?
APIJSON 是一种专为 API 设计的 JSON 查询语言,更是一个 全自动 ORM 框架。它的核心理念可以概括为一句话:
“前端传 JSON,后端自动生成并执行 SQL,直接返回结果。”
✨这意味着,对于绝大多数常规的数据库操作,.NET 后端开发者无需再编写任何 Controller、Service、Repository 甚至 SQL 代码!
🎯它为我们解决了哪些痛点?
- 接口爆炸:一个简单的项目动辄上百个
API,维护成本极高。 - 过度获取/获取不足:固定返回的字段无法满足前端灵活多变的需求。
- 开发效率低下:重复的
CRUD工作占据了大量开发时间。 - 联调成本高:接口文档更新不及时,前后端沟通不畅。
而 APIJSON 通过一个统一的、通用的 API 端点,让前端自己描述所需的数据结构和查询逻辑,后端只需负责权限控制和部署,开发效率提升 500% 以上!
🚀github官网:https://github.com/liaozb/APIJSON.NET
gitee官网:https://gitee.com/liaozb/APIJSON.NET
二、 .NET 8 为何是 APIJSON 的“最佳拍档”?
.NET 8 是微软最新的 LTS 长期支持版本,以其卓越的性能、跨平台能力和精简的架构而闻名。将 APIJSON 与 .NET 8 结合,堪称天作之合:
- 卓越性能:.NET 8 的极高吞吐量和低延迟,完美契合
APIJSON作为通用数据网关的定位。 - 原生 AOT 支持:可编译为原生应用,启动速度更快,资源占用更低,非常适合容器化部署
APIJSON服务。 - Minimal API 与原生 DI:使得集成第三方框架(如 APIJSON)的代码更加简洁、优雅。
- 强大的生态系统:配合
Entity Framework Core、Dapper、Sugar或其他 ORM,让 APIJSON 的数据库操作如虎添翼。
三、 实战:在 .NET 8 项目中集成 APIJSON
接下来,我们将一步步创建一个 .NET 8 WebAPI 项目,并集成 APIJSON.NET 这个官方支持的 .NET 版本。
第 1 步:创建项目并安装依赖
dotnet new webapi -n ApiJsonDemo
cd ApiJsonDemo
dotnet add package APIJSON.NET
这个 APIJSON.NET 包包含了所有核心功能。
第 2 步:配置数据库连接
在 appsettings.json 中添加你的数据库连接字符串:
{"ConnectionStrings": {"DefaultConnection": "Server=.;Database=ApiJsonTest;Trusted_Connection=true;TrustServerCertificate=true;"},// ... other settings
}
第 3 步:创建数据模型(以 User 和 Post 为例)
// Models/User.cs
public class User
{public long Id { get; set; }public string? Name { get; set; }public string? Email { get; set; }public DateTime CreateTime { get; set; }
}// Models/Post.cs
public class Post
{public long Id { get; set; }public string? Title { get; set; }public string? Content { get; set; }public long UserId { get; set; } // 外键关联用户public User? User { get; set; } // 导航属性public DateTime CreateTime { get; set; }
}
第 4 步:核心配置与服务注册
在 Program.cs 中,我们进行依赖注入和中间件的配置。
using APIJSON.NET;
using APIJSON.NET.Services;
using APIJSON.NET.Store;
using Microsoft.EntityFrameworkCore;var builder = WebApplication.CreateBuilder(args);// 1. 注册 DbContext (这里使用内存数据库做演示,生产环境请用SQL Server/MySQL等)
builder.Services.AddDbContext<AppDbContext>(options =>options.UseInMemoryDatabase("ApiJsonDemo"));// 2. 注册 APIJSON 所需的服务
builder.Services.AddAPIJSON(options =>
{// 配置 APIJSON 选项,例如自定义时间格式等
})
.AddAuthentication() // 如果需要权限验证,在此配置
.AddORM<AppDbContext>(); // 注册 ORM 实现,使用你项目的 DbContext// 3. 添加 Swagger 以便测试
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();var app = builder.Build();// 配置 HTTP 请求管道
if (app.Environment.IsDevelopment())
{app.UseSwagger();app.UseSwaggerUI();
}app.UseHttpsRedirection();// 4. 使用 APIJSON 中间件,并配置路由
// 这将提供一个统一的入口点,例如 /apijson
app.UseAPIJSON("apijson");app.Run();
创建 DbContext:
// Data/AppDbContext.cs
using Microsoft.EntityFrameworkCore;
using ApiJsonDemo.Models;public class AppDbContext : DbContext
{public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { }public DbSet<User> Users { get; set; }public DbSet<Post> Posts { get; set; }protected override void OnModelCreating(ModelBuilder modelBuilder){// 可以在这里进行种子数据初始化modelBuilder.Entity<User>().HasData(new User { Id = 1, Name = "托尼·斯塔克", Email = "tony@stark.com", CreateTime = DateTime.Now },new User { Id = 2, Name = "美国队长", Email = "cap@avengers.com", CreateTime = DateTime.Now });modelBuilder.Entity<Post>().HasData(new Post { Id = 1, Title = "我的第一篇文章", Content = "这是内容...", UserId = 1, CreateTime = DateTime.Now });}
}
四、 体验奇迹:无需编码,直接调用!
现在,神奇的部分来了!我们没有编写任何一个 API 控制器,但已经拥有了对 User 和 Post 表的完整 CRUD 能力。
启动项目 (dotnet run),打开 Swagger 界面或使用 Postman。
1. 查询单个用户 (GET)
请求: POST /apijson/get
{"User": {"id": 1}
}
响应:
{"User": {"id": 1,"name": "托尼·斯塔克","email": "tony@stark.com","createTime": "2024-06-07T10:30:00"},"code": 200,"msg": "success"
}
2. 复杂查询:获取用户及其所有文章 (联表查询!)
请求: POST /apijson/get
{"User": {"id": 1},"[]": {"Post": {"userId@": "User/id","@column": "id,title,createTime"}}
}
响应:
{"User": {"id": 1,"name": "托尼·斯塔克","email": "tony@stark.com","createTime": "2024-06-07T10:30:00"},"[]": [{"Post": {"id": 1,"title": "我的第一篇文章","createTime": "2024-06-07T10:35:00"}}],"code": 200,"msg": "success"
}
看!我们无需编写
JOIN语句,APIJSON自动帮我们完成了关联查询!
3. 新增数据 (POST)
请求: POST /apijson/post
{"Post": {"title": "APIJSON 太强了!","content": "这篇博文介绍了如何在 .NET 8 中使用 APIJSON。","userId": 2}
}
4. 修改数据 (PUT)
请求: POST /apijson/put
{"User": {"id": 2,"name": "史蒂夫·罗杰斯"}
}
5. 删除数据 (DELETE)
请求:POST /apijson/delete
{"Post": {"id": 1,"@delete": true}
}
五、 高级特性与权限控制
APIJSON 的功能远不止于此:
- 灵活字段控制 (
@column):指定返回的字段,避免数据冗余。 - 复杂条件查询 (
&, |, %, $等):实现 LIKE, IN, BETWEEN 等复杂查询。 - 分页排序 (
@page, @order):轻松实现数据分页和排序。 - 权限控制:通过配置
apijson_access表,可以精确控制角色对表、字段的读写权限,保障数据安全。在 .NET 中,你可以实现IAuth接口来自定义验证逻辑。
六、 总结
通过本文,我们成功地在 .NET 8 项目中集成了 APIJSON,实现了 “零代码” API 后端。这种开发模式带来了革命性的效率提升:
- 后端:从重复的
CRUD中解放出来,专注于核心业务逻辑和性能优化。 - 前端:获得了前所未有的灵活性,可以自由组合所需数据,不再受限于后端提供的固定接口。
- 项目整体:接口数量锐减,联调效率飙升,维护成本大幅降低。
在 .NET 8 高性能的加持下,APIJSON 服务能够轻松应对高并发场景。
