Skip to content

sheepxux/API-Dot-Web

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API-DOT

项目概述

API-DOT是一款纯HTML/JavaScript实现的API检测工具,专为开发人员设计,无需安装和外部依赖。只需将单个HTML文件放入项目目录并在浏览器中打开,即可自动扫描、分析项目中的API调用,并生成详细的可视化报告。该工具帮助团队快速识别潜在问题,提高API集成质量。

功能亮点

  • 零安装零配置:单个HTML文件,无需NPM、无需构建、无需配置
  • 文件系统访问:使用现代浏览器File System Access API直接读取项目文件
  • 全面API检测:支持多种前后端API调用模式自动识别
  • 智能问题诊断:检测API调用中的常见问题和安全漏洞
  • 交互式可视化报告:直观展示API健康状态和问题分布
  • 本地运行保隐私:所有分析在浏览器内完成,代码不离开您的电脑
  • 跨项目兼容:支持JavaScript、TypeScript、React、Vue等多种框架项目

详细功能

API调用检测

  • 自动识别多种HTTP客户端库调用
  • 检测RESTful和GraphQL API端点
  • 提取URL、请求方法、参数结构
  • 识别API版本和环境配置
  • 标记API调用位置和上下文

问题诊断

  • URL格式和有效性验证
  • HTTP vs HTTPS安全检查
  • 错误处理完整性分析
  • 硬编码API密钥和凭证检测
  • 参数验证和卫生检查
  • 认证配置检测
  • API版本不一致识别
  • 重复请求模式检测

报告功能

  • 总体API健康评分
  • 分类问题统计和严重性分级
  • 交互式API端点列表
  • 代码上下文查看
  • 问题修复建议
  • 自定义筛选和搜索

安装与使用

快速开始

  1. 从GitHub下载api-dot.html文件
  2. 将文件复制到您的项目根目录
  3. 使用支持的浏览器(推荐Chrome/Edge)打开该文件
  4. 点击界面上的"启动扫描"按钮
  5. 在弹出的文件选择器中,选择并授权访问您的项目文件夹
  6. 等待扫描和分析完成(大型项目可能需要几分钟)
  7. 查看生成的API健康报告

进阶配置

虽然API-DOT默认无需配置即可使用,但您可以通过界面调整以下选项:

  • 扫描深度:限制目录递归扫描的深度
  • 文件筛选:自定义要扫描的文件类型和扩展名
  • 排除路径:添加不需要扫描的目录路径
  • 检测灵敏度:调整问题诊断的严格程度

技术原理详解

核心技术栈

API-DOT基于多种现代Web技术实现:

  • File System Access API:安全访问本地文件系统
  • JavaScript模块系统:组织代码结构
  • 正则表达式引擎:识别API调用模式
  • 简化静态分析:执行基础代码分析
  • Canvas/SVG绘图:生成可视化图表
  • 响应式CSS:实现跨设备UI适配

工作流程

  1. 文件系统访问:获取用户授权并读取项目文件
  2. 文件过滤:根据文件类型和路径规则筛选相关文件
  3. 代码解析:读取文件内容并识别潜在API相关代码
  4. API检测:应用多种模式检测识别API调用和定义
  5. 健康分析:对每个API调用执行问题检测和诊断
  6. 报告生成:整合分析结果并构建交互式可视化报告

支持的API调用模式

前端HTTP客户端

// Fetch API
fetch('https://api.example.com/data')
  .then(response => response.json())

// Axios
axios.get('https://api.example.com/users')
axios.post('https://api.example.com/create', data)

// jQuery
$.ajax({
  url: 'https://api.example.com/products',
  method: 'GET'
})

// XMLHttpRequest
const xhr = new XMLHttpRequest();
xhr.open('GET', 'https://api.example.com/status');

后端HTTP客户端

// Node.js原生http
http.get('http://api.example.com/data', (res) => {})

// Request库
request('https://api.example.com/v1/items', (err, res, body) => {})

// Express路由定义
app.get('/api/users', (req, res) => {})
app.post('/api/users', (req, res) => {})

检测的问题类型

问题类别 严重性 检测示例
无效URL格式 错误 fetch('http:invalid-url')
HTTP明文传输 警告 fetch('http://api.example.com')
缺少错误处理 警告 fetch(url).then(r=>r.json())
硬编码API密钥 错误 headers: {'api-key': '1234567890'}
URL参数注入风险 警告 fetch('api.com/'+userInput)
重复API调用 提示 多处使用相同URL但不同参数

浏览器兼容性

浏览器 最低版本 状态 备注
Chrome 86+ ✅ 完全支持 推荐使用最新版本
Edge 86+ ✅ 完全支持 基于Chromium版本
Firefox 90+ ⚠️ 部分支持 需在about:config启用相关flag
Safari 15+ ❌ 有限支持 文件系统API支持不完整
Opera 72+ ✅ 支持 基于Chromium

限制和注意事项

  • 工具依赖现代浏览器API,旧版浏览器无法运行
  • 静态分析无法检测所有运行时或动态生成的API调用
  • 极大型项目(超过10,000个文件)可能导致浏览器性能问题
  • 复杂的代码模式和高度抽象的API调用可能检测不完整
  • 当前版本不支持远程API健康检查(仅静态分析)
  • 文件系统访问需要用户显式授权

示例报告输出

API健康总览:
------------------------
总API端点: 35
健康API: 24 (68.6%)  
警告API: 8 (22.9%)
错误API: 3 (8.5%)

常见问题统计:
------------------------
缺少错误处理: 5
使用HTTP非HTTPS: 3
无效URL格式: 2
硬编码API密钥: 1
参数验证不足: 2

API端点分布:
------------------------
内部API: 18
第三方API: 12
未知/其他: 5

常见问题解答

Q: 为什么选择单HTML文件格式而不是NPM包?
A: 我希望提供真正零依赖、即插即用的工具,无需任何安装步骤,降低使用门槛。

Q: API-DOT会将我的代码或API信息发送到任何服务器吗?
A: 绝对不会。所有分析都在您的浏览器中本地进行,不会向任何外部服务器发送数据。

Q: 如何处理大型项目的性能问题?
A: 使用扫描配置中的目录排除和深度限制选项,可以显著提高大型项目的扫描性能。

Q: 工具识别不了我的自定义API调用模式,怎么办?
A: 当前版本专注于常见模式。计划在未来版本中添加自定义模式支持。


开始使用API-DOT,只需下载单个文件夹,无需安装,即可获取项目API调用的全面分析!如有问题或反馈,请访问我们的GitHub页面。

About

Only one folder is needed to detect all API functions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors