🌱【极速入门】Mango框架初体验:5分钟搭建你的第一个RESTful API(附Swagger智能文档)🚀
🔥 为什么选择Mango框架?
Mango作为新一代轻量级Bun框架,集成了Elysia的高性能内核与Bun运行时的超强编译能力,更独创了**"零配置智能路由发现"和"企业级工程化规范"**。通过以下对比感受它的魅力:
- 🚫 传统框架初始化耗时30分钟 → ✅ Mango仅需几行代码
- 🚫 手动编写Swagger注解 → ✅ 自动生成API文档
- 🚫 复杂目录结构配置 → ✅ 智能识别Controller路径
🌈 环境准备
- Bun运行时:
curl -fsSL https://bun.sh/install | bash
🛠️ 四步初始化实战
步骤1:闪电创建项目
mkdir mango-demo && cd mango-demo
bun init -y
bun add mango-core mango-types elysia
💡 框架特性:基于Bun的秒级依赖安装比npm快17倍!
步骤2:智能目录架构
mango-demo/
├── src/
│ ├── index.ts # 服务入口(含热更新配置)
│ └── modules/ # 业务模块化设计
│ └── index.ts # 智能路由控制器
🌟 设计哲学:约定优于配置,自动扫描modules下的控制器文件
注意:需要在tsconfig.json中添加配置以允许装饰器的使用
{
"compilerOptions": {
"experimentalDecorators": true,
"emitDecoratorMetadata": true
}
}
步骤3:核心配置(附Swagger魔法)
// src/index.ts
import type { InferContext } from 'elysia'
import MangoCore from 'mango-core'
const mango = MangoCore.init({
businessPath: 'src', // 业务代码根目录
controllerPath: 'modules', // 控制器自动注册路径
swagger: {
path: '/swagger'
}
}).listen(8899)
export type Context = InferContext<typeof mango>
✨ 即刻获得:自动生成的Swagger文档(访问localhost:8899/swagger)
步骤4:编写首个Controller
// src/modules/index.ts
import { Controller, Get } from 'mango-core'
import type { Context } from '..'
@Controller({
prefix: '/test',
detail: { tags: ['测试'] }
})
export default class DemoController {
@Get('', { detail: { description: '测试' } })
async hello(context: Context) {
return 'Hello Mango!'
}
}
🎯 注解优势:通过装饰器自动生成API文档参数说明
🦊 添加脚本
// package.json
{
"scripts": {
"dev": "bun run --watch ./src/index.ts",
"build:linux": "rm -rf ./dist/server && bun build --compile --target=bun-linux-x64 --minify --sourcemap --bytecode ./src/index.ts --outfile dist/server"
},
}
🚀 启动与验证
bun run dev
控制台将闪现彩虹启动日志:
__ __ _ _ _ _ _
| \/ | __ _ _ __ __ _ ___ ___| |_ _ ___(_) __ _ ___| |_ __ _ _ __| |_ ___ __| |
| |\/| |/ _` | '_ \ / _` |/ _ \ / _ \ | | | / __| |/ _` | / __| __/ _` | '__| __/ _ \/ _` |
| | | | (_| | | | | (_| | (_) | | __/ | |_| \__ \ | (_| | \__ \ || (_| | | | || __/ (_| |
|_| |_|\__,_|_| |_|\__, |\___/ \___|_|\__, |___/_|\__,_| |___/\__\__,_|_| \__\___|\__,_|
|___/ |___/
version 1.0.0
-- [start] name: Mango Elysia
-- [start] env: undefined
-- [start] version: 1.0.0
-- [start] baseDir: E:\temp\mango
-- [start] businessPath: src
-- [start] controllerPath: src/modules
🐑 Swagger UI: http://localhost:8899//swagger
🦊【Mango Elysia】running at http://localhost:8899/
通过curl验证:
curl http://127.0.0.1:8899/test
# "Hello Mango!"
📚 下一步探索
- 如何实现JWT鉴权(通过
自定义装饰器) - 数据库集成教程(使用prisma)
- 开启static(基于@elysiajs/static)
👉 立即访问官方文档获取更多示例!
📢 创作声明:本文案例已通过Bun v1.1.12环境验证,欢迎在评论区留言!🗡️