
【免费下载链接】rotaA high-performance proxy rotation engine with automated IP management and real-time health monitoring项目地址https://gitcode.com/gh_mirrors/rot/rota点击查看免费下载Rota 是一个高性能代理轮换平台proxy rotation engine其 Go 核心服务对外提供完整的 REST API所有管理端点通过 JWT 认证保护内置/docsSwagger 交互文档另有少量无需令牌即可调用的公开端点。本文是一份速查手册带你从登录拿令牌开始一次搞懂 Rota REST API 的认证机制、交互文档和全部端点。API 在哪一个入口、三个关键地址Rota 通过 Docker Compose 部署时Caddy 是唯一 Web 入口浏览器只需记住一个地址地址服务说明http://localhostCaddy统一入口页面、API、文档都从这里走/api/*、/ws/*、/docs、/healthRota core (:8001)REST API 与 WebSocketlocalhost:8000Rota 代理端口客户端流量出口不经过 API 认证路由规则定义在 Caddyfile/api、/ws、/docs、/health反向代理到 Go 核心其余请求交给 Next.js Dashboard。如果不用 Caddy 直连核心则 API 在http://主机:8001代理在:8000。JWT 认证一步登录换取 24 小时 Bearer 令牌 除公开端点外所有/api/v1下的路由都需要 JWT。获取方式只有一步——登录TOKEN$(curl -s -X POST http://localhost/api/v1/auth/login \ -H Content-Type: application/json \ -d {username:admin,password:你的密码} | jq -r .token) # 之后所有受保护请求都带上它 curl -H Authorization: Bearer $TOKEN http://localhost/api/v1/proxies登录成功返回LoginResponse结构模型定义见 models/user.go{ token: eyJhbGci..., user: { username: admin } }几个值得了解的安全细节实现见 auth_handler.go 与 middleware.go令牌有效期 24 小时过期后重新登录即可签名算法固定为HS256解析时拒绝其他算法防止算法混淆攻击签名密钥持久化在数据库中JWT_SECRET环境变量可覆盖服务重启不会让所有会话掉线验证中间件同时接受Authorization: Bearer token请求头和?tokentoken查询参数——后者专为 WebSocket 连接设计防爆破登录接口收到 429 怎么办登录端点外包了一层双重限流server.go机制触发条件响应按 IP 封禁同一 IP 在窗口期内失败次数超过AUTH_IP_MAX_ATTEMPTS429该 IP 被封AUTH_IP_BLOCK_MINUTES分钟全局锁所有 IP 合计每分钟尝试超过AUTH_GLOBAL_MAX_PER_MINUTE429全站登录暂停AUTH_GLOBAL_LOCKOUT_MINUTES分钟两种响应都会带Retry-After头告诉调用方多久后重试。如果你部署在反向代理后面保持TRUST_PROXY_HEADERStrue默认值让限流按真实客户端 IP 计算。公开端点不需要令牌的四个入口以下端点无需 JWT 即可调用是监控、文档和批量取 IP 的高频入口1. 基础健康检查GET /healthcurl http://localhost/health # {status:healthy,version:1.0.0,uptime:3600}适合写在负载均衡或容器的健康探针里。实现见 health_handler.go。2. 交互文档GET /docs—— 浏览器可直接打开的 API 调试台下一节详述。3. OpenAPI 规范GET /api/v1/swagger.json—— 机器可读的接口定义规范文件随二进制内嵌见 docs/swagger.json。4. 可用代理导出GET /api/v1/proxy-users/export-working-proxies⚡这是最特别的公开端点不走 JWT而是用代理用户自己的账号密码放在 URL 查询参数里完成认证——专给不方便走 Rota 转发、只想拿一份存活 IP 清单的外部工具用# 默认导出该用户主池的存活代理每行一个 curl http://localhost/api/v1/proxy-users/export-working-proxies?usernamemyuserpasswordmypass # 指定池名称或ID、限量、按 URL 格式输出 curl http://localhost/api/v1/proxy-users/export-working-proxies?usernamemyuserpasswordmypasspoolUS%20Residentialcount50formaturl参数说明username/password代理用户凭证必填别名user/passpool池 ID 或名称缺省用该用户的主池count最多导出条数status状态过滤默认activeformaturl输出protocol://user:passhost缺省输出裸地址⚠️ 两个前提该用户在 Users 里开启了Export API开关否则返回403密码走 URL 明文这类链接务必保密。逻辑见 user_handler.go。上图展示了这些可用代理的来源带凭证的请求走用户主池池内没有存活代理时按优先级自动降级到备用池每次重试换新代理并跳过已失败的。Swagger 交互文档/docs 快速上手指南打开http://localhost/docsRota 用 Scalar 渲染了一份内嵌在二进制里的 OpenAPI 规范——规范不依赖文件系统也不依赖服务端回环访问所以在反向代理、Docker 后面都能正常打开实现见 documentation_handler.go。在/docs页面你可以 按标签浏览全部端点auth、health、proxies、pools、sources、proxy-users、dashboard等 在浏览器里直接填参数发请求无需 curl 查看每个请求/响应的 JSON Schema 认证要求一目了然规范中声明了BearerAuthAuthorization请求头填Bearer JWT对新手最实用的工作流先在/docs点着玩看明白某个端点的参数再把等价 curl 复制到脚本里。这些端点背后就是 Rota Dashboard 展示的实时数据代理池健康度、响应时间曲线、成功率图表全部由下文列出的 API 提供。端点全量速查表受保护端点按资源分组如下均需Authorization: Bearer token前缀统一为/api/v1资源端点方法认证/auth/login公开//auth/change-password//auth/mePOST / POST / GET健康/status、/database/health、/database/stats、/metrics/systemGET仪表盘/dashboard/stats、/dashboard/charts/response-time、/dashboard/charts/success-rateGET代理/proxies列表/创建、/proxies/bulk、/proxies/bulk-delete、/proxies/bulk-tags、/proxies/export、/proxies/reload、/proxies/{id}改/删、/proxies/{id}/testGET / POST / PUT / DELETE日志/logs、/logs/exportGET设置/settings读/改、/settings/reset、/settings/geoip/update-dbGET / PUT / POST来源/sourcesCRUD、/sources/{id}/fetch、/sources/enrich-geoGET / POST / PUT / DELETE代理用户/proxy-usersCRUDGET / POST / PUT / DELETE代理池/poolsCRUD、/pools/geo-summary、/pools/geo-countries、/pools/isp-list、/pools/tag-list、/pools/{id}/proxies、/pools/{id}/sync、/pools/{id}/export、/pools/{id}/health-check及其 jobs、/pools/{id}/alert-rulesCRUDGET / POST / PUT / DELETE实时推送/ws/dashboard、/ws/logs用?tokenJWT传令牌WebSocket完整路由注册代码集中在 server.go 的 setupRoutes对照阅读即可定位任意端点实现。几个高频示例# 单测一个代理是否存活 curl -X POST -H Authorization: Bearer $TOKEN http://localhost/api/v1/proxies/42/test # 触发某个池的健康检查并轮询任务进度 curl -X POST -H Authorization: Bearer $TOKEN http://localhost/api/v1/pools/1/health-check curl -H Authorization: Bearer $TOKEN http://localhost/api/v1/pools/1/health-check/jobs # 导出池为 CSV含状态、地理、ISP、成功率 curl -H Authorization: Bearer $TOKEN http://localhost/api/v1/pools/1/export?formatcsv -o pool.csv # 修改设置后立即热加载无需重启 curl -X PUT -H Authorization: Bearer $TOKEN -H Content-Type: application/json \ -d {rotation_strategy:round_robin} http://localhost/api/v1/settings常见状态码速查状态码含义常见原因200成功—400请求错误JSON 格式不对、缺必填参数401未认证/令牌失效没带Authorization头、令牌过期24h、或公开导出端点凭证错误403无权限用户未开启 Export API 却调用导出端点404资源不存在池/代理/用户 ID 写错429触发限流登录失败过多按Retry-After头等待500/503服务端错误数据库不可达/database/health返回 503 时优先排查小结Rota REST API 的使用路径其实很直白POST /api/v1/auth/login拿 JWT →Authorization: Bearer带着头调/api/v1下的端点 → 卡壳时打开/docs交互排查。公开端点覆盖了监控/health、文档/docs、swagger.json和批量取 IPexport-working-proxies三类高频场景。所有端点定义集中在 core/internal/api/server.go认证逻辑在 core/internal/api/middleware.go按图索骥即可深入任意细节。赞分享【免费下载链接】rotaA high-performance proxy rotation engine with automated IP management and real-time health monitoring项目地址https://gitcode.com/gh_mirrors/rot/rota点击查看免费下载相关推荐Shiori API v1 完全指南基于 JWT 认证与 Swagger 自文档化的书签管理 REST APIShiori API v1 完全指南基于 JWT 认证与 Swagger 自文档化的书签管理 REST API 导读 本文围绕 Shiori基于 Go 编写后端ppo-Huggy-NPU 核心代码拆解59 维观测到 21 维电机控制的完整计算图ppo Huggy NPU 核心代码拆解59 维观测到 21 维电机控制的完整计算图 ppo Huggy NPU 是一个将 Hugging Face Deep人工智能强化学习深度学习AscendOpenMontage 零密钥 AI 视频制作一条提示词到完整成片要多久OpenMontage 零密钥 AI 视频制作一条提示词到完整成片要多久 你卡在哪个环节——剪辑软件订阅太贵、时间线拖不动、还要一串付费 API 密钥OpeAI Agent人工智能AI 应用媒体生成视频音频工作流自动化音视频上一篇graphql-ruby 的 defer/stream 与 GraphiQL 集成实战自定义 fetcher 处理增量响应下一篇binance-trading-bot 快速上手全指南从空服务器到首个实盘 Profile 的部署、配置与上线创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考