API Reference — 微联 Web

接口说明文档

微联网页版 · 13 个界面· 服务端接口全量对齐

13
界面总数
11
接口模块分组
150+
REST 接口端点
24
机器可读错误码
界面清单13 Screens
#界面文件核心接口模块主要能力
01登录login.htmlauth验证码/密码登录、注册、微信/扫码
02发现index.htmlmoment / search推荐流、频道、点赞
03照片墙wall.htmlwall / vip城市筛选、点赞排行榜、上墙
04搜索search.htmlsearch / account全局搜索、用户/笔记/圈子/悬赏
05笔记详情note.htmlmoment / note图文、评论、点赞收藏、转发
06个人主页profile.htmlauth / moment / wall资料、作品集、收藏、上墙
07IM 聊天im.htmlim / wallet消息、红包、转账、语音、投票
08圈子circle.htmlim / circle圈子广场、热帖、评论点赞
09悬赏task.htmltask / wallet发布/接单、城市筛选、结算
10发布publish.htmlmoment / media图文视频、定位、可见范围、草稿
11钱包wallet.htmlwallet余额、充值、转账、支付密码、流水
12会员member.htmlmember / vip套餐购买、特权、墙额度
13设置settings.htmlauth / friend / block账号安全、隐私、效率功能

GLOBAL全局接口规范

所有接口遵循统一约定,客户端(网页版 / App)对接时须遵守以下规则。

鉴权与请求Auth & Request
# 全局前缀 /api
# 鉴权头(登录后所有需鉴权接口)
Authorization: Bearer <token>
# 鉴权级别标记
🔒 = 需登录(Bearer token)   公开 = 无需登录   👑 = 仅 super 管理员
🔒 需登录 公开 无需登录 👑 仅管理员
响应结构Response
// 成功:直接返回业务数据
{ "id": 123, "created_at": "..." }

// 失败:统一结构(⚠️ 见错误码节,code 字段为本次新增改造项)
{ "statusCode": 400, "message": "账号或密码不正确", "code": "AUTH_BAD_CREDENTIALS" }
媒体 URL 规则:所有 /api/uploads/... 链接已带 ?sig= 签名,客户端必须使用接口原样返回的 URL,勿自行拼接。无签名访问返回 403。

ERRORS错误码表

机器可读错误码(服务端 AllExceptionsFilter 改造项)。客户端判据:code 在「可重试」列 → 显示「发送失败 + 重发」;否则显示「发送失败」不给重试。

codeHTTP触发条件可重试客户端应对
AUTH_BAD_CREDENTIALS400账号或密码不正确否提示重输,不重试
AUTH_LOCKED400连续失败 5 次锁定否提示等待 N 分钟
AUTH_TOKEN_EXPIRED401token 过期/无效否跳登录
RATE_LIMITED429请求过于频繁是指数退避重试
UPLOAD_TOO_LARGE400图>5MB / 视频>300MB / 文件>100MB / 音频>20MB否提示压缩/分片
UPLOAD_BAD_SIZE400数据过小(<32B)否提示「文件为空或损坏」,与取图失败区分
UPLOAD_HEIC_FAILED400HEIC/HEIF 转换失败否提示转 JPG 重试
MEDIA_FILE_CORRUPT400图片损坏/无法解析否提示「文件损坏,无法发送」
MEDIA_VIDEO_CORRUPT400视频损坏/无法解析否提示「视频文件损坏,无法发送」
MEDIA_TRANSCODE_UNSUPPORTED400视频格式不支持否提示换格式
UPLOAD_CHUNK_MD5_FAILED400分片 MD5 校验失败是重传该分片
UPLOAD_MD5_FAILED400文件 MD5 校验失败是整文件重传
UPLOAD_SESSION_NOT_FOUND400上传会话过期/不存在否重新走 init
UPLOAD_MERGE_SIZE_MISMATCH400合并大小不符否重新上传
UPLOAD_ALREADY_FINISHED400重复 complete否视为成功,用已有消息 id
UPLOAD_FORBIDDEN400越权/非本人媒体否提示无权限
PAY_PWD_WRONG400支付密码错误否提示剩余次数
PAY_PWD_LOCKED400错 5 次锁定否提示等待 10 分钟
PAY_PWD_NOT_SET400未设置支付密码否引导设置
BALANCE_NOT_ENOUGH400微币余额不足否引导充值
MEDIA_NEED_SIGNATURE403无签名访问媒体否用接口返回的签名 URL
SERVER_ERROR500服务器内部错误是(1次)退避重试 1 次,仍失败提示稍后再试
根因说明:服务端原本所有业务错误统一返回 {statusCode, message},无机器可读 code。本表为建议新增的 code 字段(一处改动多表受益),其中上传/媒体类必须与「取图失败」用不同 code——这是修复「发送失败被说成图片打不开」问题的前提。

WSWebSocket 实时通道

项说明
地址/im 命名空间(socket.io)
握手auth.token 传登录 token
事件presence / typing / message 推送 / recall / call(WebRTC 信令)/ group-call-* / location-share
离线推送⚠️ 无 APNs/FCM 离线推送;离线消息靠重连后补拉
离线补拉口径:socket connect/reconnect 后固定执行一次 listConversations + messages(afterId=最后已读) 游标翻页(每页 ≤200,无硬上限)。游标按 id 单调递增不丢、不重复;服务重启瞬间的 socket 事件会丢,需补拉兜底。

01登录 · login.html

验证码 / 密码双 Tab 登录,支持微信与扫码。对应 App 登录注册模块。

方法路径鉴权说明
POST/api/auth/register公开注册(账号 6 位 + 手机号 + 密码,密码 ≥8 位含大小写数字)
POST/api/auth/login公开登录 → 返回 {account_no, token, expires_at, kdf_salt, msg_key_env}
POST/api/auth/forgot-password公开申请重置码(账号+手机匹配)
POST/api/auth/forgot-password/verify公开凭码重置密码
GET/api/auth/me🔒本人资料 + 钱包 + 好友数 + 隐私开关

02发现 · index.html

瀑布流信息流 + 频道切换(推荐/关注/同城/旅行/穿搭/美食/生活/好物),对应 App 笔记 feed。

方法路径鉴权说明
GET/api/moment/feed🔒信息流(游标 id 降序)
GET/api/moment/:id🔒动态详情(canView 鉴权)
POST/api/moment/:id/like🔒点赞 / 取消
POST/api/moment/:id/favorite🔒收藏 / 取消
GET/api/search/global🔒顶部搜索框(跳搜索页)

03照片墙 · wall.html

城市筛选 + 按点赞量排行榜(Top3 领奖台 + 4–10 榜单行)。用户要求仅保留「城市选项 + 排行榜」。

方法路径鉴权说明
GET/api/wall/feed🔒照片墙流(VIP 分流:非 VIP 仅 blur_url)
GET/api/wall/rank🔒点赞排行榜(Top3 + 榜单)
GET/api/wall/quota🔒上墙配额(本月免费 1 张)
GET/api/wall/mine🔒我的照片
GET/api/wall/liked🔒我赞过的
POST/api/wall/like🔒点赞 / 取消
POST/api/wall/from-moment🔒笔记一键上墙
POST/api/wall/upload-from-album🔒相册直传上墙
POST/api/wall/:id/remove🔒下架
GET/api/vip/status🔒VIP 状态(墙通行证额度)
城市筛选:当前接口清单未提供独立的城市维度参数,城市筛选为前端本地过滤(对 rank/feed 结果按 city 字段分组),或需服务端在 wall/feed、wall/rank 增加 ?city= 查询参数。

04搜索 · search.html

全局搜索,Tab 分类:全部 / 笔记 / 用户 / 圈子 / 悬赏。

方法路径鉴权说明
GET/api/search🔒全局搜索
GET/api/search/global🔒全局搜索(聚合)
GET/api/account/search🔒账号搜索(用户 Tab)

05笔记详情 · note.html

左图右评论布局,含图文、话题、浏览/访客记录、评论二级回复、点赞收藏转发。

方法路径鉴权说明
GET/api/moment/:id🔒动态详情
GET/api/moment/:id/comment🔒评论列表
POST/api/moment/:id/comment🔒发评论(可 parentId 二级回复)
DELETE/api/moment/comment/:id🔒删评论(本人或管理员)
POST/api/moment/comment/:id/like🔒评论点赞
POST/api/moment/:id/like🔒点赞
POST/api/moment/:id/favorite🔒收藏
POST/api/im/note/forward🔒转发到聊天
GET/api/moment/:id/viewers🔒阅读记录(仅作者)

06个人主页 · profile.html

封面横幅 + 头像悬浮 + 资料卡 + 四个内容 Tab(笔记/收藏/上墙/悬赏)。

方法路径鉴权说明
GET/api/auth/me🔒本人资料(昵称/状态/微号)
POST/api/auth/profile🔒编辑资料(nickname/gender/bio/cover 等)
GET/api/user/qrcode🔒二维码名片
GET/api/moment/feed🔒我的笔记/动态(笔记 Tab)
GET/api/moment/favorites🔒我的收藏(收藏 Tab)
GET/api/wall/mine🔒上墙照片(上墙 Tab)
GET/api/account/avatar🔒头像

07IM 聊天 · im.html

桌面双栏(会话列表 + 聊天窗),支持文字、图集、语音、红包、转账、群投票、群接龙、已读回执。

方法路径鉴权说明
GET/api/im/conversations🔒会话列表(含未读数)
POST/api/im/conversation🔒开私聊会话(peer)
POST/api/im/message🔒发消息(client_msg_id 幂等,文字端到端加密)
GET/api/im/messages/:convType/:convId🔒拉历史/增量(afterId/beforeId/aroundId 游标,limit≤200)
POST/api/im/upload-media🔒媒体上传(raw body + kind=image/video)
POST/api/im/read🔒标记已读(lastReadMessageId)
GET/api/im/unread/:convType/:convId🔒未读数
POST/api/im/recall/:messageId🔒撤回(2 分钟限时,仅发送者)
POST/api/im/forward🔒转发(单条)
POST/api/im/forward-batch🔒转发(多条)
DELETE/api/im/messages/batch🔒多选删除
POST/api/im/tip🔒聊天打赏
POST/api/im/group/:id/vote🔒群投票
POST/api/im/group/:id/relay🔒群接龙
POST/api/wallet/transfer🔒转账(红包/转账卡片)
GET/api/im/call/history🔒通话记录
已读/送达口径:delivered_at(消息表)= 接收方拉取到该消息时写入,仅 private 与 note 消息写;read_receipt 按 (conv_type, conv_id, account_no) UPSERT last_read_message_id。UI 建议:单聊显示「已读/未读」(对方 last_read ≥ 该消息 id),群聊不显示已读(微信同款)。
删除语义:服务端 deleteMessagesBatch 写 message_hidden(仅自己隐藏),客户端删除为纯本机行为;删除后应用本地库剩余最后一条重算会话预览,不要调服务端删除接口。

08圈子 · circle.html

圈子广场 + 热帖,支持创建圈子、加入、帖子评论点赞。

方法路径鉴权说明
POST/api/im/circle🔒建圈子
POST/api/im/circle/:id/join🔒加入圈子
GET/api/im/circle/:id/posts🔒圈子帖子列表
POST/api/im/circle/:id/posts🔒发帖
GET/api/moment/:id/comment🔒帖子评论
POST/api/moment/:id/like🔒帖子点赞

09悬赏 · task.html

同城悬赏,用微币发布/接单,完成结算入钱包,解锁联系方式需支付。

方法路径鉴权说明
GET/api/task🔒悬赏列表(城市/金额/距离/截止排序)
POST/api/task🔒发布悬赏(金额 0–1,000,000 微币)
POST/api/task/:id/accept🔒接单(不可接自己的单)
POST/api/task/:id/complete🔒确认完成(触发结算)
POST/api/wallet/transfer🔒结算入钱包
GET/api/wallet/:accountNo/ledgers🔒已结算收入流水
提示:/api/task 的具体子路径(accept/complete 等)在接口清单中仅以「task 🔒 /api/task(发单/接单/悬赏)」概括,落地时需向服务端确认精确路由。

10发布 · publish.html

图文/视频发布,最多 18 张媒体,支持定位、圈子同步、可见范围、允许下载/复制、草稿。

方法路径鉴权说明
POST/api/moment/media🔒上传动态媒体
POST/api/moment🔒发动态(simple/rich,含可见范围 visibility)
GET/api/moment/draft🔒读草稿
PUT/api/moment/draft🔒保存草稿
DELETE/api/moment/draft🔒删草稿
POST/api/chunkupload/init🔒分片上传初始化(kind/totalSize/fileName)
POST/api/chunkupload/chunk🔒上传单片
POST/api/chunkupload/complete🔒合并 + 转码 + 秒发
大文件分片流程:init(拿 uploadId/chunkSize)→ 循环 chunk(raw body + uploadId/index/md5)→ complete(合并校验)。首次上传媒体进入审核态(reviewing)。

11钱包 · wallet.html

微币余额、充值申请(人工审核)、站内转账、支付密码服务端校验。合规:禁止提现/退币。

方法路径鉴权说明
GET/api/wallet/:accountNo/balance🔒余额
POST/api/wallet/transfer🔒转账(toAccount, amount, payPassword)
GET/api/wallet/pay-password/status🔒支付密码状态
POST/api/wallet/pay-password🔒设置支付密码(6 位数字)
POST/api/wallet/pay-password/change🔒改支付密码(需旧密码)
GET/api/wallet/:accountNo/ledgers🔒流水(≤500)
POST/api/wallet/recharge-request🔒充值申请(人工审核)
GET/api/wallet/recharge-requests/mine🔒我的充值申请

12会员 · member.html

周卡/月卡套餐购买,特权:墙通行证、身份徽章、优先审核。

方法路径鉴权说明
GET/api/member/me🔒我的会员状态
GET/api/member/plans🔒套餐列表(体验卡/周卡/月卡)
POST/api/member/open🔒购买会员(微币支付)
GET/api/vip/status🔒VIP 状态

13设置 · settings.html

账号安全、隐私、效率功能、关于四大分区。

方法路径鉴权说明
GET/api/auth/sessions🔒我的会话/设备列表
DELETE/api/auth/sessions/:id🔒踢某设备下线
POST/api/auth/password🔒改登录密码(需旧密码)
POST/api/auth/deactivate🔒自助注销(余额须为 0)
POST/api/account/appeal🔒账号申诉 / 数据导出
POST/api/auth/profile🔒隐私开关(show_*/single_device/teen_mode/privacy_*)
GET/api/block🔒黑名单列表
POST/api/block🔒拉黑 / 取消
GET/api/friend/tags🔒会话分组(标签分组)
GET/api/help/categories公开帮助中心分类
GET/api/help/articles公开帮助中心文章
POST/api/report🔒意见反馈 / 提交举报
GET/api/app/version公开版本号

APPX附录 · 其他接口模块

以下模块由多个页面共用,单独列出便于查询。

好友 friend🔒
方法路径说明
POST/api/friend/request发好友申请(target 账号 + via 渠道)
GET/api/friend/requests收到的好友申请
POST/api/friend/request/:id/accept同意
POST/api/friend/request/:id/reject拒绝
GET/api/friend/list好友列表
GET/api/friend/stats好友数与 gate
POST/api/friend/match-contacts通讯录匹配(≤200 手机号)
DELETE/api/friend/:accountNo删好友
媒体 / 分片上传 media · chunkupload🔒
方法路径说明
POST/api/media/upload媒体上传
GET/api/media/mine我的媒体
GET/api/media/:id媒体详情
POST/api/chunkupload/init初始化分片
POST/api/chunkupload/chunk上传单片
POST/api/chunkupload/complete合并 + 转码 + 秒发
GET/api/uploads/media/{orig,preview,thumb,video,cover,file,audio}/<名>?sig=媒体访问(需 sig 签名)
其他模块Misc
模块关键路径说明
account/api/account/search · avatar · appeal账号搜索 / 头像 / 申诉
user/api/user/qrcode · status我的二维码 / 状态
block/api/block · /api/block/status/:account拉黑列表 / 拉黑状态
report/api/report · /reports👑 · /:id/resolve👑举报 / 举报列表 / 处理
favorite/api/favorite收藏 CRUD
config/api/config/rtc · /api/config/:keyRTC 配置 / 通用配置
health/api/health健康检查