Просмотр исходного кода

feat(types,proxy): add optional endpoint fields and ProxySession.getEndpoint() extracting URL.pathname

ding113 3 месяцев назад
Родитель
Сommit
bf1ca3f9af
2 измененных файлов с 20 добавлено и 0 удалено
  1. 14 0
      src/app/v1/_lib/proxy/session.ts
  2. 6 0
      src/types/message.ts

+ 14 - 0
src/app/v1/_lib/proxy/session.ts

@@ -294,6 +294,20 @@ export class ProxySession {
     return this.request.model;
   }
 
+  /**
+   * 获取请求的 API endpoint(来自 URL.pathname)
+   * 处理边界:若 URL 不存在则返回 null
+   */
+  getEndpoint(): string | null {
+    try {
+      const url = this.requestUrl;
+      if (!url || typeof url.pathname !== "string") return null;
+      return url.pathname || "/";
+    } catch {
+      return null;
+    }
+  }
+
   /**
    * 设置原始模型(在重定向前调用)
    * 只能设置一次,避免多次重定向覆盖

+ 6 - 0
src/types/message.ts

@@ -177,6 +177,9 @@ export interface MessageRequest {
   // User-Agent(用于客户端类型分析)
   userAgent?: string;
 
+  // 请求的 API endpoint(例如:/v1/messages),从 URL.pathname 提取
+  endpoint?: string;
+
   // Messages 数量(用于短请求检测和分析)
   messagesCount?: number;
 
@@ -223,6 +226,9 @@ export interface CreateMessageRequestData {
   // User-Agent(用于客户端类型分析)
   user_agent?: string;
 
+  // 请求的 API endpoint(例如:/v1/messages),从 URL.pathname 提取
+  endpoint?: string;
+
   // Messages 数量(用于短请求检测和分析)
   messages_count?: number;
 }