使用 Gemini AI 評估 OpenAPI/Swagger 規格是否符合 RESTful 設計標準的智能工具,基於 Next.js 構建。
- 📋 智能分析: 使用 Google Gemini AI 進行深度 API 設計分析
- 🏗️ 7大類別評估: 資源設計、HTTP方法、狀態碼、命名規範、請求/回應、版本控制、文件完整性
- 🏭 工業物聯網標準: 特別針對工業 IoT API 設計需求進行評估
- 📊 視覺化報告: 直觀的評分報告和詳細改進建議
- 🎯 拖放上傳: 支援拖放檔案上傳和剪貼簿貼上
- ⚡ Next.js 架構: 一致的前後端 TypeScript 開發體驗
- 克隆專案
git clone <repository-url>
cd api-judge- 安裝依賴
npm install- 設定環境變數
cp .env.example .env.local編輯 .env.local 加入你的 Gemini API Key:
GEMINI_API_KEY=你的真實API金鑰
ACCOUNT=登入帳號
PASSWORD=登入密碼獲取 API Key: Google AI Studio
- 啟動開發伺服器
npm run dev開啟 http://localhost:3000 查看應用。
- 一鍵部署
- 手動部署
# 安裝 Vercel CLI
npm i -g vercel
# 部署
vercel
# 設定環境變數
vercel env add GEMINI_API_KEY
vercel env add ACCOUNT
vercel env add PASSWORD- 環境變數設定
- 在 Vercel Dashboard 中設定
GEMINI_API_KEY,ACCOUNT,PASSWORD - 或使用 CLI:
vercel env add GEMINI_API_KEY, ...
- 在 Vercel Dashboard 中設定
-
輸入 API 規格
- 拖放
.json檔案到上傳區域 - 或直接複製貼上 OpenAPI/Swagger JSON 內容
- 點擊「從剪貼簿貼上」快速輸入
- 拖放
-
開始評估
- 點擊「開始評估」按鈕
- AI 將在 10-30 秒內完成分析
-
查看報告
- 總體評分和各類別詳細評分
- 具體問題指出和改進建議
- 可展開查看詳細內容
- 支援列印報告功能
- 框架: Next.js 15 + TypeScript
- 前端: React 19 + Tailwind CSS
- 後端: Next.js API Routes (Serverless)
- AI 模型: Google Gemini-2.5-pro
- 部署: Vercel (一鍵部署)
- 檔案處理: react-dropzone
api-judge/
├── pages/
│ ├── api/
│ │ └── evaluate.ts # Next.js API Route
│ ├── _app.tsx # App 配置
│ ├── _document.tsx # HTML Document
│ └── index.tsx # 主頁面
├── components/
│ ├── SwaggerInput.tsx # 輸入組件
│ └── EvaluationReport.tsx # 報告組件
├── types/
│ └── evaluation.ts # TypeScript 類型
├── styles/
│ └── globals.css # 全域樣式
├── context.md # RESTful 設計標準
├── next.config.js # Next.js 配置
└── package.json # 專案依賴
系統根據以下 RESTful API 設計標準進行評估:
- URI 結構合理性
- 資源命名規範
- 階層關係設計
- 業務實體建模
- GET、POST、PUT、PATCH、DELETE 使用正確性
- 冪等性考慮
- 安全性設計
- HTTP 狀態碼使用適當性
- 錯誤回應設計
- 成功回應格式
- 一致的命名慣例
- 複數/單數使用
- 駝峰/底線命名
- JSON 格式設計
- Content-Type 設定
- 錯誤處理機制
- API 版本策略
- 向後相容性
- 棄用政策
- OpenAPI 規格完整性
- 描述資訊品質
- 範例提供
- ⏱️ 速率限制: 每分鐘限制 1 次評估(防止濫用)
- 🔒 隱私保護: API 規格不會被儲存或記錄
- 📦 檔案限制: 支援最大 10MB JSON 檔案
- 🌐 CORS: 已設定適當的跨域政策
評估 OpenAPI/Swagger 規格。
請求格式:
{
"swagger": "OpenAPI/Swagger JSON string or object"
}回應格式:
{
"success": true,
"evaluation": {
"overall_score": 85,
"categories": { ... },
"summary": "整體評估摘要",
"critical_issues": [...],
"best_practices_followed": [...]
},
"timestamp": "2024-01-01T00:00:00.000Z"
}專案包含 example-swagger.json 範例檔案,可用於測試系統功能:
# 本地測試
curl -X POST http://localhost:3000/api/evaluate \
-H "Content-Type: application/json" \
-d @example-swagger.json- 統一技術棧: 前後端都使用 TypeScript
- 零配置: 開箱即用的 TypeScript、ESLint、Tailwind CSS
- 熱重載: 快速開發體驗
- API Routes: 無需額外的後端服務器
- Vercel 最佳化: 為 Vercel 平台最佳化
- Serverless: 自動擴展,按需付費
- 邊緣計算: 全球 CDN 加速
- 零冷啟動: 比 Express 更快的啟動時間
- 統一依賴: 一個 package.json 管理所有依賴
- 一致的程式碼風格: 前後端使用相同的 linting 規則
- 類型安全: 端到端的 TypeScript 類型檢查
# 開發
npm run dev
# 建置
npm run build
# 生產啟動
npm start
# 程式碼檢查
npm run lint- Fork 專案
- 建立功能分支 (
git checkout -b feature/AmazingFeature) - 提交變更 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 建立 Pull Request
此專案採用 MIT 授權條款。
- Next.js - React 全端框架
- Google Gemini AI - 提供強大的 AI 分析能力
- Vercel - 最佳的部署平台
- Tailwind CSS - 實用的 CSS 框架
API Judge - 讓您的 API 設計更符合業界標準 ⚖️