WSO2 API Manager 4.0版本API实际数量与显示数量不符问题咨询
API注册数量显示不一致问题排查与修复
一、定位显示数据对应的数据库表
- 一般API注册数据存在这些表:
api_registry、apis、registered_apis,具体得看你的系统架构 - 快速确认方法:
- 打开浏览器开发者工具,抓页面加载时获取统计数的接口,看后端返回数据的来源(如果后端有SQL日志,直接查对应接口的查询语句)
- 查后端代码的统计逻辑:Java项目看Entity类的
@Table注解,Python Django看Model的db_table属性,PHP项目看数据库操作的表名
二、修复数量不一致问题
1. 先找差异原因
- 先跑SQL核对数据:
SELECT COUNT(*) FROM [你的表名];,对比页面显示数,确认是表数据问题还是统计逻辑问题 - 检查软删除数据:很多系统会用
is_deleted字段标记删除,统计时没过滤的话会多算,跑SELECT COUNT(*) FROM [你的表名] WHERE is_deleted = 0;看是否和实际注册数一致 - 检查重复数据:跑
SELECT api_id, COUNT(*) FROM [你的表名] GROUP BY api_id HAVING COUNT(*) > 1;,看有没有重复注册的API - 检查状态过滤:表中如果有
status字段(比如draft/active),确认统计逻辑是不是把草稿/测试状态的API也算进去了
2. 针对性修复
- 软删除未过滤:修改统计接口的SQL,加上
WHERE is_deleted = 0条件 - 存在重复数据:先备份数据,再删除重复条目,比如
DELETE FROM [你的表名] WHERE id NOT IN (SELECT MIN(id) FROM [你的表名] GROUP BY api_id);(根据实际主键调整) - 包含非活跃API:修改统计逻辑,只统计
status = 'active'(或对应已激活状态值)的API - 缓存导致:如果页面用了缓存(比如Redis),清理对应缓存键,让页面重新拉取数据库最新数据
内容的提问来源于stack exchange,提问作者seeandsea
相关产品推荐
相关产品推荐

