🎀🎀🎀代码之美系列目录🎀🎀🎀
一、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?为什么它是"效率神器"?](#一、 什么是 APIJSON?为什么它是“效率神器”?)
- [二、 .NET 8 为何是 APIJSON 的"最佳拍档"?](#二、 .NET 8 为何是 APIJSON 的“最佳拍档”?)
- [三、 实战:在 .NET 8 项目中集成 APIJSON](#三、 实战:在 .NET 8 项目中集成 APIJSON)
-
- [第 1 步:创建项目并安装依赖](#第 1 步:创建项目并安装依赖)
- [第 2 步:配置数据库连接](#第 2 步:配置数据库连接)
- [第 3 步:创建数据模型(以 User 和 Post 为例)](#第 3 步:创建数据模型(以 User 和 Post 为例))
- [第 4 步:核心配置与服务注册](#第 4 步:核心配置与服务注册)
- [四、 体验奇迹:无需编码,直接调用!](#四、 体验奇迹:无需编码,直接调用!)
-
- [1. 查询单个用户 (GET)](#1. 查询单个用户 (GET))
- [2. 复杂查询:获取用户及其所有文章 (联表查询!)](#2. 复杂查询:获取用户及其所有文章 (联表查询!))
- [3. 新增数据 (POST)](#3. 新增数据 (POST))
- [4. 修改数据 (PUT)](#4. 修改数据 (PUT))
- [5. 删除数据 (DELETE)](#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 步:创建项目并安装依赖
bash
dotnet new webapi -n ApiJsonDemo
cd ApiJsonDemo
dotnet add package APIJSON.NET
这个 APIJSON.NET 包包含了所有核心功能。
第 2 步:配置数据库连接
在 appsettings.json 中添加你的数据库连接字符串:
json
{
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=ApiJsonTest;Trusted_Connection=true;TrustServerCertificate=true;"
},
// ... other settings
}
第 3 步:创建数据模型(以 User 和 Post 为例)
csharp
// 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 中,我们进行依赖注入和中间件的配置。
csharp
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:
csharp
// 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
json
{
"User": {
"id": 1
}
}
响应:
json
{
"User": {
"id": 1,
"name": "托尼·斯塔克",
"email": "tony@stark.com",
"createTime": "2024-06-07T10:30:00"
},
"code": 200,
"msg": "success"
}
2. 复杂查询:获取用户及其所有文章 (联表查询!)
请求: POST /apijson/get
json
{
"User": {
"id": 1
},
"[]": {
"Post": {
"userId@": "User/id",
"@column": "id,title,createTime"
}
}
}
响应:
json
{
"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
json
{
"Post": {
"title": "APIJSON 太强了!",
"content": "这篇博文介绍了如何在 .NET 8 中使用 APIJSON。",
"userId": 2
}
}
4. 修改数据 (PUT)
请求: POST /apijson/put
json
{
"User": {
"id": 2,
"name": "史蒂夫·罗杰斯"
}
}
5. 删除数据 (DELETE)
请求:POST /apijson/delete
json
{
"Post": {
"id": 1,
"@delete": true
}
}
五、 高级特性与权限控制
APIJSON 的功能远不止于此:
- 灵活字段控制 (
@column):指定返回的字段,避免数据冗余。 - 复杂条件查询 (
&, |, %, $等):实现 LIKE, IN, BETWEEN 等复杂查询。 - 分页排序 (
@page, @order):轻松实现数据分页和排序。 - 权限控制 :通过配置
apijson_access表,可以精确控制角色对表、字段的读写权限,保障数据安全。在 .NET 中,你可以实现IAuth接口来自定义验证逻辑。
六、 总结
通过本文,我们成功地在 .NET 8 项目中集成了 APIJSON,实现了 "零代码" API 后端。这种开发模式带来了革命性的效率提升:
- 后端 :从重复的
CRUD中解放出来,专注于核心业务逻辑和性能优化。 - 前端:获得了前所未有的灵活性,可以自由组合所需数据,不再受限于后端提供的固定接口。
- 项目整体:接口数量锐减,联调效率飙升,维护成本大幅降低。
在 .NET 8 高性能的加持下,APIJSON 服务能够轻松应对高并发场景。