宝塔面板不支持一键生成API文档,需手动部署Swagger UI或使用apidoc等工具从代码注释生成静态页面;apidoc适用于PHP/JS项目,依赖Node.js并需正确编写注释;Swagger UI需托管dist文件并配置swagger.json路径;PHP项目须借助zircote/swagger-php等库生成OpenAPI规范文件,再通过宝塔托管访问。

宝塔面板本身不支持一键生成API文档
宝塔没有内置 Swagger UI、apidoc 或 PHPDoc 自动生成页面的功能。所谓“一键”,实际是指在宝塔环境里手动部署一个能渲染 OpenAPI/Swagger 文档的前端服务,或用命令行工具从代码注释中提取生成静态 HTML。面板只提供运行环境和反向代理能力,文档生成得靠你自己选型和配置。
用 apidoc 在宝塔里生成 PHP/JS 接口文档
apidoc 是轻量级选择,适合 PHP 或 JS 项目,它从源码注释(如 @api)提取生成 HTML 页面。它不依赖后端框架,但需要 Node.js 环境。
- 确认宝塔已安装 Node.js(建议 v14+),路径通常为
/www/server/nodejs/v14.17.6/bin/node - 全局安装:运行
npm install apidoc -g;若提示命令未找到,加软链:ln -s /www/server/nodejs/v14.17.6/bin/apidoc /usr/bin/apidoc - 在项目根目录写
api.json,至少包含name、version、url - 在含
@api注释的 PHP/JS 文件所在目录执行:apidoc -i ./src/ -o ./doc/(./src/是源码路径,./doc/是输出目录) - 用宝塔新建一个站点,根目录指向
./doc/,访问域名即可看到文档页
注意:apidoc 不解析 PHP 类型声明,@apiParam{string} name 这类写法要手写准确,否则字段类型会丢失。
部署 Swagger UI 需要自己托管静态文件
Swagger UI 是纯前端页面,只要提供一个符合 OpenAPI 3.0 规范的 swagger.json(或 openapi.yaml),就能渲染交互式文档。宝塔不做生成,只负责托管和反向代理。
- 把官方 Swagger UI 的 dist 文件夹上传到宝塔站点目录(如
/www/wwwroot/swagger.example.com/) - 确保该目录下有
index.html,且其中url字段指向你的真实 API 定义文件,例如:url: "/swagger.json" - 把你的
swagger.json放在同一域名下(可放 Nginx 别名路径,或用宝塔“网站”→“配置”添加 location 块) - 若 API 需带 Cookie 或请求头鉴权,Swagger UI 默认不携带,需改
index.html中的requestInterceptor手动注入
常见坑:宝塔默认关闭 application/json MIME 类型的静态文件访问,如果打开 swagger.json 显示下载或 404,在网站配置的「MIME 类型」里补上 json application/json。
PHP 项目想自动导出 OpenAPI?别指望宝塔集成
目前没有 PHP SDK 能无侵入地从 Laravel/Lumen/ThinkPHP 等框架中全自动提取路由和验证规则生成标准 swagger.json。你得选一个明确支持的库,比如:
-
zircote/swagger-php:基于 PHPDoc 注解,需在控制器方法里写@OA\Get等,然后用命令行生成 JSON -
darkaonline/l5-swagger(仅 Laravel):封装了前者,提供 Artisan 命令和路由,但要求项目结构规范
生成后的 swagger.json 仍要像上一节那样,用宝塔托管并配好静态服务。别试图让宝塔“识别”你的 PHP 框架然后点一下就出文档——它连你用的是什么框架都不知道。
最易被忽略的一点:所有自动生成工具都依赖你写的注释或配置是否完整。少写一个 @OA\Parameter,Swagger UI 就不会显示那个参数,测试时就会卡住。文档不是生成出来的,是写出来的,工具只是帮你格式化。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











