如何构建可扩展的MAUI PicoServer REST API框架实现实战?
摘要:MAUI 嵌入式 Web 架构实战(三) 构建可扩展的 PicoServer REST API 框架 源码地址: https:github.comdensen2014MauiPicoAdmin 一、从简单 API 到可扩展架构 在上
MAUI 嵌入式 Web 架构实战(三)
构建可扩展的 PicoServer REST API 框架
源码地址:
https://github.com/densen2014/MauiPicoAdmin
一、从简单 API 到可扩展架构
在上一篇文章 《MAUI 嵌入式 Web 架构实战(二)》 中,我们已经成功构建了多个 PicoServer API,例如:
/api/time
/api/product/list
/api/product/detail
这些接口已经可以:
处理 HTTP 请求
返回 JSON 数据
支持简单的参数读取
例如:
http://127.0.0.1:8090/api/product/list
返回:
{
"code":0,
"message":"ok",
"data":[]
}
这意味着我们的 MAUI 应用已经具备了:
本地 REST API 服务能力
但随着接口数量增加,新的问题会逐渐出现:
API 全部写在一个类中
HTTP 逻辑和业务逻辑混在一起
返回格式不统一
错误处理难以维护
例如:
class PicoAdmin
{
ProductList()
ProductDetail()
ProductAdd()
ProductDelete()
}
当接口数量达到:
50+
100+
200+
代码就会变得难以维护。
因此,本篇文章将对 PicoServer 进行一次 架构升级。
目标是构建一个:
可扩展的本地 REST API 框架结构
核心目标包括:
API 模块化
Controller / Service 分层
统一返回结构
统一异常处理
清晰的项目结构
二、REST API 框架核心架构
升级后的 API 架构如下:
HTTP Request
│
▼
PicoServer
│
Router
│
Controller
│
Service
│
Data / Device / Logic
各层职责:
层
作用
Router
路由分发
Controller
HTTP 请求处理
Service
业务逻辑
Data / Device
数据或设备操作
这种结构与常见 Web 框架(如 ASP.NET Core)非常类似。
三、推荐项目目录结构
为了让 API 更易维护,可以采用如下结构:
Server
├─ Controllers
│ ├─ ProductController.cs
│ └─ SystemController.cs
│
├─ Services
│ └─ ProductService.cs
│
├─ Models
│ └─ ApiResult.cs
│
└─ PicoServerHost.cs
目录职责说明:
目录
作用
Controllers
API 路由处理
Services
业务逻辑
Models
数据模型
PicoServerHost
服务器启动与路由注册
这种结构可以保持代码清晰、模块化。
四、统一 API 返回结构
在 API 系统中,统一返回格式非常重要。
我们先定义一个返回模型。
