查看请求参数、响应结构和权限要求。需要调用接口时,请进入在线测试。
POST /api/v1/auth/login,填写账号密码并点击 Execute。没有账号可先注册。data.accessToken,点击 Authorize,仅粘贴 token,不带 Bearer 前缀。Idempotency-Key;重试同一操作时复用原值。当前为测试服务。在线测试会真实读写服务端数据;请使用测试账号。令牌只保存在当前页面内存中,刷新后需重新授权。
beta rev 0.1.2 · 2026-10-05:已补齐账号状态、刷新会话、问卷目录、服务通知、商户资料与拒单、商品图片、本人统计、私信已读及反馈接口。当前校园仅“四川航天职业学院(三星堆校区)”,ID:campus_sichuan_hangtian_sanxingdui。
刷新令牌只能使用一次;客户端应串行刷新并原子替换凭据,旧令牌重放会撤销该设备会话。服务通知支持前台拉取,系统后台推送尚未接入。
AI 需配置上游后启用;模拟验证码默认关闭;在线支付、退款、结算尚未开放。问卷目录可为空,需导入已审核题库。
进入心伙伴对话:无需输入账号密码,可新建会话、读取历史、发送消息、查看进度、停止回复和删除会话。手机端点击“会话”打开侧栏。首次发送时自动创建独立访客测试身份,凭据仅在页面内存中保存;刷新后不能恢复上一页历史。
页面复用注册/登录接口自动建立访客身份,再同源调用 Go API,无需 Rust / Kotlin;App 的原生调用分工见下表。发送消息返回 202 后,页面查询 operation 并订阅 SSE;SSE 只显示进度,最终回复以 Go 保存的结果为准。断线后“重试原操作”复用原消息键;关闭页面不会取消后台任务。
Go 的账号、业务和加密聊天记录存储在 PostgreSQL;Agent 的运行任务使用独立加密 SQLite。Agent 服务 Token、模型密钥与数据库连接只在服务端。删除 Go 会话不会删除 Agent 副本;思考模式、附件与语音尚未在本页开放。AI 未配置时返回 503。
现有 Go 业务 API 均可由 React 发起 HTTP 请求,无需为每个接口手写 Rust / Kotlin 转发。App 统一使用 Tauri HTTP 插件;它内部已经调用 Rust。需要访问手机系统能力时,再调用对应的原生插件。
业务 API React / TypeScript → Tauri HTTP 插件(内部 Rust)→ Go
手机系统能力 React / TypeScript → Tauri 移动端插件 → Android 原生能力(Kotlin / 系统 API)
| 功能 | React 发起的 Go 请求 | 需要框架/原生支持的步骤 |
|---|---|---|
| 账号、资料、校园与业务管理 | 登录、退出、改密、校园墙、经验、搭子、学籍、心情、问卷、小铺、订单、商户和管理接口。 | 无需自定义 Rust / Kotlin。统一使用 HTTP 插件。角色、数据权限与业务状态由 Go 校验。 |
| 头像、帖子与商品图片 | POST /users/me/avatar、POST /post-images、POST /merchant/shops/{id}/product-images 及图片读取接口。 | 拍照、调用 Android Photo Picker、读取 Android 内容 URI 时需原生支持。已有 File / Blob / 字节即可发起上传;若 WebView 已支持普通文件输入控件,选图无需再自写 Kotlin。 |
| 附近服务与定位 | GET /services?sort=distance,提交 latitude / longitude。 | 获取设备定位及申请系统权限交给定位插件或已支持该能力的 WebView。已有经纬度或手动选择位置时,无需调用设备定位。 |
| 验证码与消息通知 | 开发验证码 /auth/mock-sms/*(默认关闭);私信 /conversations/*;服务通知 /users/me/notifications。 | 弹出 Android 系统通知、申请通知权限必须使用通知插件/原生能力。只在 React 页面显示验证码或消息时不需要系统通知。 |
| 私信前台轮询与后台任务 | 页面打开时,可由 React 定时请求消息接口。 | 应用退到后台或关闭页面后的可靠同步、远程推送需要 Android 后台任务/推送机制;不能依赖 React 定时器。当前 Go 服务没有提供推送注册接口,后台能力需另行接入。 |
| 记住登录与生物识别 | 登录获取 accessToken,后续 HTTP 请求携带 Bearer Token。 | 需要系统密钥保护的持久化、指纹/人脸验证使用安全存储或生物识别插件。Keystore 保护加密密钥;普通页面内存会话无需自定义原生逻辑。 |
| AI 异步会话、进度与服务密钥 | React 提交 /ai/conversations/*/messages,收到 202 后查询 /ai/operations/{id};可订阅 /events,收到终态再查询保存的回复。 | Agent 调用、加密与数据库访问仅由服务端处理。服务 Token、数据密钥不得放进客户端。SSE 使用支持 Bearer 请求头和流读取的 fetch/HTTP 插件;普通 EventSource 不能添加此请求头。后台持续运行由 Go worker 完成,关闭页面不取消任务。Go 需配置上游后才开放。 |
表内路径省略 /api/v1。必须经过原生能力,不等于必须自己写 Kotlin:优先调用已有插件的 JavaScript API,插件缺少所需能力时才补 Rust 接口与 Kotlin 实现。这是客户端接入要求,不代表这些手机插件已经安装或实现。
App 网络入口:import { fetch } from '@tauri-apps/plugin-http'。在 Tauri 注册插件并配置服务器 URL capability;Android 网络权限、测试 HTTP 策略仍需正确配置。
普通浏览器入口:window.fetch/浏览器 Axios 跨源访问需要 CORS 配置。当前 Go 服务未开放跨域响应;本页在线测试与 API 同源,不需要额外 CORS。
头像流程:原生选图/拍照获取文件内容 → React 组装 FormData(avatar 字段)→ HTTP 插件上传至 Go → 用带令牌的请求重新读取图片。拿到本地路径或 content:// URI 不等于已经取得可上传的字节。
在线支付、退款与结算尚未开放;未来若接入 Android 支付 SDK,调起 SDK 的步骤才属于原生能力,支付结果仍由服务端确认。