# API模块 ## 前台API(无需认证) ### GET /api/homepage 获取首页数据(含嵌套分类结构,一级分类+二级子分类)。 - 返回: `{ categories: CategoryWithChildren[], skillCategories: SkillCategoryWithChildren[] }` ### GET /api/categories 获取工具分类树形结构(含子分类),按sortOrder排序。 ### GET /api/skill-categories 获取技能分类树形结构(含子分类),按sortOrder排序。 ### GET /api/tools 获取已发布工具列表。 - Query: `categoryId`, `pricingModel`, `search`, `page`(默认1), `pageSize`(默认20) - 返回: `{ tools: Tool[], total, page, pageSize }` ### GET /api/tools/[slug] 获取工具详情(by slug),浏览计数+1。 ### GET /api/skills 获取已发布技能列表。 - Query: `category`, `search`, `page`, `pageSize` - 返回: `{ skills: Skill[], total, page, pageSize }` ### GET /api/skills/[slug] 获取技能详情(by slug),浏览计数+1。 ### GET /api/skills/[slug]/review 获取技能的五维评测数据(仅返回PUBLISHED状态)。 - 返回: `{ capability, devExp, costLicense, community, performance, overall, reviews, longArticle?, videoScript?, socialCards?, reviewedAt }` ### GET/POST /api/auth/[...nextauth] NextAuth认证端点(登录/回调/CSRF等)。 ### 用户相关API(需NextAuth用户认证) | 路由 | 方法 | 功能 | |------|------|------| | /api/user/favorites | GET | 获取当前用户收藏列表(工具+技能) | | /api/user/favorites | POST | 添加收藏(body: { targetType, targetId }) | | /api/user/favorites | DELETE | 取消收藏(body: { targetType, targetId }) | | /api/user/history | GET | 获取浏览历史 | --- ## 后台API(需NextAuth认证) ### 分类管理 | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/categories | GET | 获取所有分类(含工具数/子分类数) | | /api/admin/categories | POST | 创建分类 | | /api/admin/categories/[id] | PUT | 更新分类 | | /api/admin/categories/[id] | DELETE | 删除分类(有工具/子分类时拒绝) | | /api/admin/skill-categories | GET | 获取技能分类列表 | | /api/admin/skill-categories | POST | 创建技能分类 | | /api/admin/skill-categories/[id] | PUT | 更新技能分类 | | /api/admin/skill-categories/[id] | DELETE | 删除技能分类 | ### 工具管理 | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/tools | GET | 获取所有工具(分页) | | /api/admin/tools | POST | 创建工具 | | /api/admin/tools/[id] | PUT | 更新工具 | | /api/admin/tools/[id] | DELETE | 删除工具 | ### 技能管理 | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/skills | GET | 获取所有技能(分页) | | /api/admin/skills/[id] | PUT | 更新技能 | | /api/admin/skills/[id] | DELETE | 删除技能 | ### 待审核工具 | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/pending | GET | 获取待审核工具列表(分页) | | /api/admin/pending | DELETE | 清空所有待审核工具 | | /api/admin/pending/[id] | PUT | 编辑待审核工具(websiteUrl变更时自动抓Logo) | | /api/admin/pending/[id] | DELETE | 删除单个待审核工具 | | /api/admin/pending/[id]/publish | POST | 发布为正式工具 | | /api/admin/pending/batch | POST | 批量导入(去重+自动抓Logo) | | /api/admin/pending/batch-publish | POST | 批量发布(ids数组) | | /api/admin/pending/batch-reject | POST | 批量拒绝(ids数组) | | /api/admin/pending/fetch-logos | POST | 批量抓取Logo(body: {scope, refetch?}) | ### 待审核技能 | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/pending-skills | GET | 获取待审核技能列表(分页) | | /api/admin/pending-skills | DELETE | 清空所有待审核技能 | | /api/admin/pending-skills/[id] | PUT | 编辑待审核技能 | | /api/admin/pending-skills/[id] | DELETE | 删除单个待审核技能 | | /api/admin/pending-skills/[id]/publish | POST | 发布为正式技能 | | /api/admin/pending-skills/batch | POST | 批量导入(去重) | | /api/admin/pending-skills/batch-publish | POST | 批量发布(ids数组) | | /api/admin/pending-skills/batch-reject | POST | 批量拒绝(ids数组) | | /api/admin/pending-skills/publish-all | POST | 一键发布所有待审核技能 | ### AI发现与检测(提示词+JSON粘贴模式,不调用外部AI API) | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/discover-tools | POST | 导入工具JSON数组(body: {tools: [...], categoryId}),自动去重导入待审核列表 | | /api/admin/discover-skills | POST | 导入技能JSON数组(body: {skills: [...], categoryId}),自动去重导入待审核列表 | | /api/admin/discover-news | POST | 导入新闻JSON数组(body: {items: [...]}),自动生成今日AI日报 | | /api/admin/discover-news | GET | 获取今日AI日报 | | /api/admin/check-tools | POST | 检测工具网站可访问性+抓取缺失Logo(body: {type: "published"/"pending"}),返回logoFetched/logoMethod/logoUrl | | /api/admin/update-stars | POST | 更新GitHub Star数(body: {type: "published"/"pending"}) | ### 系统配置 | 路由 | 方法 | 功能 | |------|------|------| | /api/admin/system-config | GET | 获取所有配置 | | /api/admin/system-config | PUT | 批量更新配置(upsert) | ### 评论API(需NextAuth用户认证) | 路由 | 方法 | 功能 | |------|------|------| | /api/reviews | GET | 获取评论列表(query: type, targetId) | | /api/reviews | POST | 创建评论(body: { type, targetId, content, rating? }) | ## SystemConfig 配置键 | Key | 类型 | 说明 | |-----|------|------| | discoveryPromptConfig | JSON | AI发现提示词配置(含toolPrompt/skillPrompt/newsPrompt/tagPool等) | | logoFetchConfig | JSON | Logo抓取策略配置 | | discoverSkillsScript | string | 技能探索脚本源码 |