Skip to content

zhan1206/api-dependency-analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API 依赖分析器

English | 中文

自动扫描并分析代码库中的 API 依赖关系。检测 REST、GraphQL、gRPC、WebSocket 调用,识别提供商,发现安全问题,估算成本。

功能特性

  • 🔍 多语言支持: JavaScript, TypeScript, Python, Java, Go, Ruby, PHP, C#, Swift, Kotlin
  • 📡 多协议支持: REST API、GraphQL、gRPC、WebSocket、Server-Sent Events (SSE)
  • 🏢 自动识别提供商: 自动识别 50+ 常见 API 提供商(GitHub、OpenAI、Stripe 等)
  • 🔒 安全分析: 检测不安全的 HTTP、缺失的身份验证、硬编码密钥
  • 💰 成本估算: 估算第三方 API 使用成本
  • 📊 多种输出格式: JSON、Markdown、CSV 报告

快速开始

命令行使用

# pip 安装
pip install api-dependency-analyzer

# 分析项目
api-analyze --path /path/to/your/project

# 或者直接运行
python -m api_analyzer --path .

作为 Python 库使用

from api_analyzer import APIDependencyAnalyzer

analyzer = APIDependencyAnalyzer('/path/to/project')
report = analyzer.analyze()

print(f"发现 {report['stats']['total_apis']} 个 API 调用")

使用方法

CLI 选项

api-analyze --path <项目路径> [选项]

选项:
  --path PATH          要分析的项目路径(必需)
  --output DIR         输出目录(默认:./api-analysis)
  --format FORMAT      输出格式:json, markdown, csv, all(默认:all)
  --help               显示帮助信息

示例输出

# API 依赖分析报告

## 概览

| 指标 | 数量 |
|------|------|
| API 调用总数 | 42 |
| 扫描文件数 | 156 |
| 发现问题 | 7 |

## API 类型分布

| 类型 | 数量 |
|------|------|
| REST | 35 |
| GraphQL | 5 |
| WebSocket | 2 |

支持的语言和框架

语言 检测到的框架
JavaScript/TypeScript fetch, axios, superagent, got, node-fetch, Apollo, Socket.IO
Python requests, httpx, aiohttp, urllib, gql, Strawberry
Java HttpClient, OkHttp, RestTemplate, Feign, gRPC
Go net/http, fasthttp, grpc, req
Ruby Net::HTTP, Faraday, HTTParty
PHP Guzzle, cURL
C# HttpClient, RestSharp
Swift URLSession, Alamofire
Kotlin Ktor, Fuel, OkHttp

检测到的 API 提供商

工具自动识别以下常见 API 提供商:

  • AI/ML: OpenAI、Anthropic Claude、Google Gemini、Cohere
  • 云服务: AWS S3、Google Cloud Storage、Azure Blob
  • 支付: Stripe、PayPal、支付宝、微信支付
  • 社交: GitHub、Twitter/X、Facebook、LinkedIn、Discord
  • 通信: Twilio、SendGrid、Slack
  • 地图: Google Maps、Mapbox、高德地图
  • 监控: Datadog、New Relic、Amplitude

安全检查

问题 严重性 描述
insecure_http 使用 HTTP 而非 HTTPS
insecure_ws 使用不安全的 WebSocket (ws://)
missing_auth 未检测到身份验证
no_timeout 未配置超时
hardcoded_secret 严重 可能存在硬编码密钥

安装

通过 pip 安装

pip install api-dependency-analyzer

从源码安装

git clone https://github.com/your-username/api-dependency-analyzer.git
cd api-dependency-analyzer
pip install -e .

GitHub Actions 集成

name: API 依赖分析

on: [push, pull_request]

jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: 设置 Python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'
      - name: 安装分析器
        run: pip install api-dependency-analyzer
      - name: 分析 API
        run: api-analyze --path . --output ./api-report
      - name: 上传报告
        uses: actions/upload-artifact@v3
        with:
          name: api-report
          path: ./api-report

开发

# 克隆仓库
git clone https://github.com/your-username/api-dependency-analyzer.git
cd api-dependency-analyzer

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或: venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

# 运行测试
pytest

# 本地运行
python -m api_analyzer --path . --output ./test-report

贡献

欢迎贡献!请随时提交 Pull Request。

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开 Pull Request

许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件。

致谢

  • 灵感来源于微服务架构中对更好的 API 依赖管理的需求
  • 为关心代码质量和安全的开发者而构建 ❤️

About

Automatically scan and analyze API dependencies in your codebase. Detect REST, GraphQL, gRPC, WebSocket calls, identify providers, find security issues.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages