新闻详情

新闻详情

首页 / 资讯中心 / 详情

Open-Falcon Plus API 实战:用户列表接口 GET /api/v1/user/users 详解

发布时间:2026/9/29 7:42:34来源:尧图网络
Open-Falcon Plus API 实战:用户列表接口 GET /api/v1/user/users 详解
运维观测指标监控告警【免费下载链接】falcon-plusAn open-source and enterprise-level monitoring system.项目地址https://gitcode.com/gh_mirrors/fa/falcon-plus点击查看免费下载导读用户列表接口是 Open-Falcon Plus 平台用户管理模块UICUser Identity Center中最基础也最常用的查询入口用于枚举系统中全部用户及其角色、联系方式等信息。本文以 docs/_posts/User/2017-01-01-user_list.md 文档为主体结合仓库中 API 模块的源码实现路由注册、控制器、数据模型、会话校验与数据库表结构完整讲解该接口的调用方式、请求约束、分页与过滤参数、响应字段语义及常见错误处理让读者能够直接对接该接口进行用户管理系统的二次开发或运维排查。接口概览项目说明请求方式GET接口路径/api/v1/user/users功能返回系统中全部用户列表鉴权要求需要有效 Session会话成功状态码200数据来源MySQLuic库中的user表该接口在 API 模块中由 modules/api/app/controller/uic/user_routes.go 注册路由挂在/api/v1/user分组下并挂载了AuthSessionMidd会话校验中间件authapi : r.Group(/api/v1/user) authapi.Use(utils.AuthSessionMidd) authapi.GET(/users, UserList)也就是说所有对/api/v1/user/users的请求都会先经过会话校验只有携带合法 Session 的请求才能拿到用户列表。会话Session鉴权机制原文档第一行明确指出* [Session](#/authentication) Required即调用该接口必须携带有效会话凭证。会话校验的完整链路如下请求头中携带Apitoken其值为一段 JSON 字符串形如{name:root,sig:427d6803b78311e68afd0242ac130006}modules/api/app/helper/session.go 中的GetSession解析该 JSON校验name与sig是否为空SessionChecking先检查default_token配置项用于服务端内部调用再以name查user表、以sig uid查session表均命中才判定鉴权通过modules/api/app/utils/auth_middle.go 中的AuthSessionMidd中间件在鉴权失败时返回401 Unauthorized并中断请求。需要注意一个配置开关当 modules/api/cfg.example.json 中的skip_auth设为true时中间件会跳过校验此时无需 Session 也可访问该接口——这通常只用于本地调试或测试环境。此外服务端内部调用可借助default_token配置default_token非空且 sig 与之相等即视为合法便于服务端脚本免登录调用 API。请求参数与分页过滤虽然原文档只展示了基本调用但源码中 modules/api/app/controller/uic/user_controller.go 的UserList实现表明该接口支持三个可选的 Query 参数用于控制返回规模和过滤范围参数类型默认值说明pageint空不分页页码从 1 开始设置后必须同时设置limitlimitint空不分页每页返回条数qstring.按用户名name正则过滤的正则表达式默认匹配所有非空名称分页语义分页参数由 modules/api/app/helper/pagging_parser.go 中的PageParser解析其规则为page与limit均未设置不分页返回全部用户只设置page未设置limit报错You set page but skip limit params, please check your input任一参数小于等于 0报错limit or page can not set to 0 or less than 0page 1时实际偏移量换算为 0其他页码按(page-1) * limit计算偏移。分页模式下底层执行的原生 SQL 为select * from user where name regexp ? limit ?,?对应的 Go 实现片段if limit ! -1 page ! -1 { dt db.Uic.Raw(select * from user where name regexp ? limit ?,?, q, page, limit).Scan(user) } else { dt db.Uic.Table(user).Where(name regexp ?, q).Scan(user) }正则过滤示例借助q参数可按用户名正则模糊匹配例如# 返回所有用户名默认行为 curl -G http://localhost:8080/api/v1/user/users \ -H Apitoken: {\name\:\root\,\sig\:\你的sig\} # 按正则过滤只返回以 test 开头的用户 curl -G http://localhost:8080/api/v1/user/users \ -H Apitoken: {\name\:\root\,\sig\:\你的sig\} \ --data-urlencode q^test # 分页返回第 2 页每页 10 条 curl -G http://localhost:8080/api/v1/user/users \ -H Apitoken: {\name\:\root\,\sig\:\你的sig\} \ --data-urlencode page2 --data-urlencode limit10响应结构与字段语义接口成功返回200响应体为一个 JSON 数组数组元素对应user表中的一条用户记录。原文档给出的示例响应如下[ { id: 1, name: root, cnname: , email: , phone: , im: , qq: 904394234239, role: 2 }, { id: 32, name: owltester, cnname: 翱鶚, email: root123cepave.com, phone: 99999999999, im: 44955834958, qq: 904394234239, role: 0 } ]各字段的定义可以直接对照 modules/api/app/model/uic/user.go 中的数据模型字段类型说明idint64用户唯一 IDuser表主键自增namestring登录用户名唯一索引cnnamestring中文名 / 显示名emailstring邮箱phonestring手机号imstring即时通讯账号qqstringQQ 号roleint用户角色详见下文值得注意的是模型中的Passwd字段带有json:-标签意味着密码永远不会出现在任何 API 响应中从数据模型层面保证了密码不外泄。role 字段用户角色语义role的取值定义在 scripts/mysql/db_schema/1_uic-db-schema.sql 的建表注释中role: -1:blocked 0:normal 1:admin 2:root值角色权限说明-1blocked被封禁用户无法正常使用系统0normal普通用户1admin管理员2root超级管理员root结合 modules/api/app/model/uic/user.go 中的IsAdmin/IsSuperAdmin方法可以确认role为 1 或 2 均视为管理员role 2才视为超级管理员。示例响应中root用户role: 2、普通用户owltesterrole: 0正好与语义一致。另外注意仅当配置access_control为true时才执行角色校验见skipAccessControll函数若关闭该开关则所有用户都被视为管理员生产环境请保持开启。真实调用记录参考仓库中的接口采集文档 docs/doc/user.html.json 记录了该接口的一次真实调用请求头携带Cookie: nametest1; sig...即通过 Cookie 携带会话返回200及包含多个用户的完整列表其中既有role: 2的 root、role: 1的管理员用户id 14也有大量role: 0的普通用户可以用于对照理解响应格式与角色字段的真实取值。更多接口示例可参考 docs/doc/user.html错误码约定参见 docs/_posts/2017-01-01-response-status-codes.md。常见错误与排查场景返回说明未携带或携带非法 Session401 Unauthorized由AuthSessionMidd中间件拦截错误信息形如token key is not set、session not found设置了page但未设置limit400 Bad Request提示You set page but skip limit paramspage或limit小于等于 0400 Bad Request提示limit or page can not set to 0 or less than 0page/limit非法数值400 Bad Request字符串无法转换为整数时同样报 400数据库查询异常417 Expectation Failed底层 SQL 执行出错时返回排查建议先确认是否已通过POST /api/v1/user/login登录并拿到sig登录接口示例见 docs/doc/user.html.json 中/api/v1/user/login的记录再检查 API 模块配置文件中的skip_auth与default_token是否符合预期最后确认uic库连接与user表数据是否正常连接串配置位于 modules/api/cfg.example.json 的db.uic项。总结GET /api/v1/user/users是 Open-Falcon Plus 用户管理 API 中最基础的查询接口。通过本文可以掌握接口的会话鉴权链路Apitoken头 →AuthSessionMidd→session表校验、page/limit/q三个查询参数的分页与正则过滤用法、响应数组各字段与role角色取值语义以及基于源码定位各类错误原因的方法。该接口与 docs/_posts/User/2017-01-01-user_get_info_by_id.md、docs/_posts/User/2017-01-01-user_login.md 等文档共同构成完整的用户管理 API 体系可作为前端页面与运维脚本对接用户数据的标准入口。赞分享运维观测指标监控告警【免费下载链接】falcon-plusAn open-source and enterprise-level monitoring system.项目地址https://gitcode.com/gh_mirrors/fa/falcon-plus点击查看免费下载相关推荐Open-Falcon 用户信息查询 API 实战GET /api/v1/user/u/{user_id} 接口详解Open Falcon 用户信息查询 API 实战GET /api/v1/user/u/{user_id} 接口详解 本文以 Open Falconfalc运维观测指标监控告警Open-Falcon Falcon 用户登出接口实战GET /api/v1/user/logout 的原理、调用与 Session 清理Open Falcon Falcon 用户登出接口实战GET /api/v1/user/logout 的原理、调用与 Session 清理 导读 本文以 O运维观测指标监控告警Open-Falcon falcon-plus API 实战向 Team 批量添加用户POST /api/v1/team/userOpen Falcon falcon plus API 实战向 Team 批量添加用户POST /api/v1/team/user 本文是 falcon运维观测指标监控告警上一篇trouble.nvim革命从诊断工具到开发者文化符号下一篇如何构建田间鲁棒的植物病害检测系统PlantDoc数据集完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Ubuntu学习路线:安装、配置、开发环境与排错实战 2026/9/29 9:39:46

Ubuntu学习路线:安装、配置、开发环境与排错实战

1. 为什么值得花时间系统学一遍 Ubuntu很多人第一次接触 Ubuntu 都是从"装个虚拟机玩玩"开始的,然后在某个深夜被显卡驱动或者中文输入法按在地上摩擦,最后默默关掉虚拟机回到原来的系统。我自己也走过这条路,前后折腾过七八台机器…

阅读更多 →
电子政务云费用计算全指南:配额计费、账单复核与预算估算 2026/9/29 9:39:46

电子政务云费用计算全指南:配额计费、账单复核与预算估算

简介:面向政务信息化主管部门、云服务运维企业及采购评审人员的电子政务云平台服务费用测算参考文档,依据国家相关政策与多地取费经验,系统梳理平台建设、运行保障与服务使用等费用构成。全文围绕基础设施、支撑软件、信息安全、应用部署迁移…

阅读更多 →
Python的只读模式 `‘r‘` 看似简单,实则包含了文件指针、编码处理、内存管理等丰富的计算机基础知识 2026/9/29 9:39:39

Python的只读模式 `‘r‘` 看似简单,实则包含了文件指针、编码处理、内存管理等丰富的计算机基础知识

在Python编程的基础体系与计算机等级考试的考点中,文件操作是连接程序与外部数据的核心桥梁。无论是处理日志文件、读取配置参数,还是进行数据分析,掌握文件读写都是必备技能。而在所有文件操作模式中,只读模式(‘r’&…

阅读更多 →
superpowers工作流:让Codex CLI成为Java项目的交付流水线 2026/9/29 9:39:39

superpowers工作流:让Codex CLI成为Java项目的交付流水线

去年年底我把日常编码节奏从“IDE 为主、AI 为辅”调转成“AI 为主、IDE 兜底”之后,真正触发这个转变的,就是一套叫 superpowers 的工作流方案。它不是某个框架,也不是一门新语言,而是一组围绕 AI 编程助手(以 OpenAI…

阅读更多 →
操作系统全貌解析:从进程线程到国产系统,一文捋清核心概念 2026/9/29 9:39:39

操作系统全貌解析:从进程线程到国产系统,一文捋清核心概念

前两天一个刚转行做运维的朋友问我:学了这么久的操作系统概念,什么进程、线程、管程、协程,还有国产Linux那一堆发行版,到底串起来是个什么关系?我说你这个问题问得特别大,大到一本《操作系统概念》第10版都…

阅读更多 →
SDF反标在数模混合仿真中的正确姿势:Cadence环境踩坑全记录 2026/9/29 9:39:39

SDF反标在数模混合仿真中的正确姿势:Cadence环境踩坑全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉