当前位置: 首页 > news >正文

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 CoreDapperSugar 或其他 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 控制器,但已经拥有了对 UserPost 表的完整 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 服务能够轻松应对高并发场景。

http://www.dtcms.com/a/561005.html

相关文章:

  • 网络版本计算器
  • 视频容器(如 MP4)的作用:组织与同步
  • 餐饮加盟网网站建设网站建设案例新闻
  • 梅州站改造高铁站优化方案英语必修三电子版
  • vue 项目中常用的 2 个 Ajax 库
  • 【NX 8.5】【vs2022】二开环境配置
  • HexStrike使用搭建
  • 历史数据分析——云南铜业
  • 金昌市住房和城乡建设局网站兴平网站开发
  • 使用Docker构建Node.js应用的详细指南
  • 微信小程序动态二维码外部实时展示系统
  • 建设银行贵阳银行下载官方网站做网站排名优化有用吗
  • 【软件安全】Linux GDB在软件安全中的概念和应用
  • DashGo零基础入门 纯Python的管理系统搭建
  • 1. 工厂方法模式
  • 【2025 SWPU-NSSCTF 秋季训练赛】jicao
  • 网站建设.龙兵科技做推广的网站那个好
  • trimesh库初步接触
  • 对链表进行插入排序:用Java实现
  • 资讯类网站建设方案书docker wordpress 4.2
  • 设计模式——原型模式(prototype)
  • 设计模式-单列模式
  • ArgoCD与Helm:云原生部署对比解析
  • 我的创作纪念日:从 2024.11.02 到今天的一整年
  • go语言 做网站外贸导向企业网站
  • 十堰微网站建设电话计算机哪个专业最吃香而且最简单
  • OpenCV(十六):椭圆的绘制
  • 数据仓库·简介(一)
  • 如何细分行业 做网站赚钱品质培训网站建设
  • 网站建设 思路室内设计平面图包括