chore: api 采用v1版本控制方式
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"商家 测试商家 昨天的 GMV 是多少?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -32,7 +32,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"订单 2025052215583773001 的状态是什么?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -47,7 +47,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"用户 3750 的信息?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -62,7 +62,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"商品 气密性通风口门及不锈锈钢通风圆管 卖了多少件?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -77,7 +77,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"商家 测试商家 的退款率是多少?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -92,7 +92,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"列出所有未发货订单\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -107,7 +107,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"列出所有正常营业的商户\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -122,7 +122,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"商户 测试商家 的提现记录有哪些?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -137,7 +137,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"用户 3750 的充值记录有哪些?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -152,7 +152,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"用户 3750 的邀请奖励有哪些?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -167,7 +167,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"最近的系统公告有哪些?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -182,7 +182,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"最近的店铺笔记有哪些?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -197,7 +197,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"商家 测试商家 的 uniacid 是多少?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -212,7 +212,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"用户 1 的 uniacid 是多少?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -227,7 +227,7 @@
|
||||
"mode": "raw",
|
||||
"raw": "{\"question\": \"当前有多少商家用户?\"}"
|
||||
},
|
||||
"url": "{{base_url}}/admin/query"
|
||||
"url": "{{base_url}}/api/v1/admin/query"
|
||||
}
|
||||
}
|
||||
],
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
// src/index.ts
|
||||
import { Elysia } from 'elysia';
|
||||
import adminRoutes from './routes/admin';
|
||||
import routes from './routes';
|
||||
import { config } from 'dotenv';
|
||||
config();
|
||||
|
||||
const app = new Elysia()
|
||||
.use(adminRoutes)
|
||||
.use(routes)
|
||||
.get('/', () => 'SaaS Admin API - Ready for Dify Agent')
|
||||
.listen(process.env.PORT || 8080);
|
||||
|
||||
|
||||
14
src/routes/index.ts
Normal file
14
src/routes/index.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
// src/routes/index.ts
|
||||
import { Elysia } from 'elysia';
|
||||
import v1Routes from './v1';
|
||||
|
||||
// 主路由配置,支持多版本管理
|
||||
const routes = new Elysia()
|
||||
// v1 版本路由
|
||||
.group('/api/v1', (app) => app.use(v1Routes))
|
||||
// 未来可以在这里添加 v2, v3 等版本路由
|
||||
// .group('/api/v2', (app) => app.use(v2Routes))
|
||||
// .group('/api/v3', (app) => app.use(v3Routes))
|
||||
;
|
||||
|
||||
export default routes;
|
||||
@@ -1,7 +1,7 @@
|
||||
// src/routes/admin.ts
|
||||
// src/routes/v1/admin.ts
|
||||
import { Elysia } from 'elysia';
|
||||
import { verifyApiKey, sanitizeResult } from '../security';
|
||||
import { executeNaturalLanguageQuery } from '../queryEngine';
|
||||
import { verifyApiKey, sanitizeResult } from './services/security';
|
||||
import { executeNaturalLanguageQuery } from './services/queryEngine';
|
||||
|
||||
const adminRoutes = new Elysia({ prefix: '/admin' })
|
||||
.use(verifyApiKey)
|
||||
8
src/routes/v1/index.ts
Normal file
8
src/routes/v1/index.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
// src/routes/v1/index.ts
|
||||
import { Elysia } from 'elysia';
|
||||
import adminRoutes from './admin';
|
||||
|
||||
const v1Routes = new Elysia()
|
||||
.use(adminRoutes);
|
||||
|
||||
export default v1Routes;
|
||||
@@ -1,5 +1,5 @@
|
||||
// src/queryEngine.ts
|
||||
import pool from './db';
|
||||
// src/routes/v1/services/queryEngine.ts
|
||||
import pool from '../../../db';
|
||||
|
||||
type QueryContext = {
|
||||
current_tenant_id?: string;
|
||||
@@ -1,4 +1,4 @@
|
||||
// src/security.ts
|
||||
// src/routes/v1/services/security.ts
|
||||
import { Elysia, Context } from 'elysia';
|
||||
|
||||
// 脱敏规则配置
|
||||
Reference in New Issue
Block a user