Files
Memoh/packages/api
2026-01-12 20:33:20 +08:00
..
2026-01-10 20:17:02 +08:00
2026-01-09 12:33:04 +08:00
2026-01-09 12:33:04 +08:00
2026-01-12 16:29:55 +08:00
2026-01-10 20:17:02 +08:00

@memoh/api

API 服务器,基于 Elysia 构建。

API 模块

认证模块 (/auth)

用户认证和授权管理。

  • POST /auth/login - 用户登录
  • GET /auth/verify - 验证 token
  • GET /auth/me - 获取当前用户信息

详细文档:AUTH_README.md

用户管理模块 (/user) 🔒 仅管理员

完整的用户 CRUD 操作接口。

  • GET /user - 获取所有用户
  • GET /user/:id - 获取单个用户
  • POST /user - 创建用户
  • PUT /user/:id - 更新用户信息
  • DELETE /user/:id - 删除用户
  • PATCH /user/:id/password - 更新用户密码

详细文档:USER_MANAGEMENT.md

模型管理模块 (/model)

AI 模型配置管理。

  • GET /model - 获取所有模型
  • GET /model/:id - 获取单个模型
  • POST /model - 创建模型配置
  • PUT /model/:id - 更新模型配置
  • DELETE /model/:id - 删除模型配置
  • GET /model/chat/default - 获取默认聊天模型
  • GET /model/summary/default - 获取默认摘要模型
  • GET /model/embedding/default - 获取默认嵌入模型

设置模块 (/settings) 🔒 需要认证

用户偏好设置管理(自动使用当前登录用户)。

  • GET /settings - 获取当前用户设置
  • PUT /settings - 更新当前用户设置(支持模型配置、Agent 参数等)

详细文档:SETTINGS_API.md

记忆模块 (/memory) 🔒 需要认证

用户记忆和对话历史管理(自动使用当前登录用户)。

  • POST /memory - 添加记忆
  • GET /memory/search - 搜索记忆
  • GET /memory/message - 获取消息历史(分页)
  • GET /memory/message/filter - 按日期范围过滤消息

详细文档:API_CHANGES.md

Agent 模块 (/agent) 🔒 需要认证

AI Agent 智能对话接口,支持流式响应和记忆管理。

  • POST /agent/stream - 流式对话(Server-Sent Events

详细文档:AGENT_API.md

快速开始

安装依赖

pnpm install

配置环境变量

复制并编辑环境变量文件:

cp ../../.env.example ../../.env

必需配置:

  • DATABASE_URL - PostgreSQL 连接字符串
  • ROOT_USER - Root 超级管理员用户名
  • ROOT_USER_PASSWORD - Root 超级管理员密码
  • JWT_SECRET - JWT 签名密钥

启动开发服务器

pnpm run dev

服务器将在 http://localhost:7002 启动。

构建生产版本

pnpm run build
pnpm run start

认证和权限

Bearer Token 认证

所有受保护的 API 端点需要在请求头中携带 JWT token:

Authorization: Bearer <your_jwt_token>

权限级别

  • 公开接口:无需认证
  • 用户接口:需要有效的 JWT token
  • 管理员接口 🔒:需要管理员角色的 JWT token

中间件

authMiddleware

强制认证中间件,要求请求必须包含有效的 Bearer token。

import { authMiddleware } from './middlewares'

const protectedModule = new Elysia()
  .use(authMiddleware)
  .get('/protected', ({ user }) => {
    return { message: `Hello ${user.username}!` }
  })

adminMiddleware 🔒

管理员权限中间件,要求用户角色为 admin

import { adminMiddleware } from './middlewares'

const adminModule = new Elysia()
  .use(adminMiddleware)
  .get('/admin-only', ({ user }) => {
    return { message: 'Admin access granted' }
  })

optionalAuthMiddleware

可选认证中间件,如果有 token 则验证,没有则 usernull

import { optionalAuthMiddleware } from './middlewares'

const publicModule = new Elysia()
  .use(optionalAuthMiddleware)
  .get('/public', ({ user }) => {
    if (user) {
      return { message: `Welcome back, ${user.username}!` }
    }
    return { message: 'Welcome, guest!' }
  })

运行测试

pnpm test

技术栈

  • Elysia - 高性能 Web 框架
  • @elysiajs/jwt - JWT 认证插件
  • @elysiajs/bearer - Bearer token 提取插件
  • @elysiajs/cors - CORS 支持
  • Drizzle ORM - 数据库 ORM
  • Zod - 数据验证
  • Bun - JavaScript 运行时

相关文档