ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# :-: swagger-php Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许 API 来始终保持同步。Swagger 让部署管理和使用功能强大的 API 从未如此简单。 ## 使用方法 ### 1:使用composer 安装 swagger-php ~~~jsx composer require zircote/swagger-php ~~~ ### 2:下载swagger-ui 这一步有两个下载方式 一种是使用git安装 一种是直接去github 下载源码,本人使用的是直接去官网下载的 第一种:使用git方式是安装 ~~~bash git clone https://github.com/swagger-api/swagger-ui.git cd swagger-ui npm install ~~~ 第二种:去官网下载安装 https://swagger.io/tools/swagger-ui/download/ ![](https://img.kancloud.cn/67/6d/676dc9273ece18180edab1d7d60bd21e_1623x744.png) 然后复制swagger-ui目录下的dist文件到php项目目录 ``` 如 public/swagger; ``` 3:生成接口文档 ~~~ public function create_swagger_json(){ $openapi = \OpenApi\scan(APP_PATH); $json_url = ROOT_PATH.'/public/swagger.json'; // 检测模板目录 $dir = dirname($json_url); if (!is_dir($dir)) { mkdir($dir, 0755, true); } header('Content-Type: application/x-yaml'); $jsonStr = $openapi->toJson(); $result = file_put_contents($json_url, $jsonStr); dump($result); } ~~~ 4:修改public/swagger/index.html 文件的json地址 根据自己项目路径和生成的json文件的路径进行配置 ~~~ window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ url: "http://10.5.0.104:8088/php_hudong/new_interaction/api/public/swagger.json", dom_id: '#swagger-ui', deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: "StandaloneLayout" }); // End Swagger UI call region window.ui = ui; }; ~~~ 5:添加注解 ~~~ /** * @OA\Info(title="接口文档", version="0.1") * @OA\Schemes(format="http") * @OA\Tag( * name="Index", * description="测试控制器", * ) */ ~~~ 6:访问生成接口文档接口 ``` create_swagger_json 访问第三步开发的生成接口文档接口 ``` 7:访问接口地址 ``` http://10.5.0.104:8088/php_hudong/new_interaction/api/public/swagger/index.html#/ ``` ![](https://img.kancloud.cn/0d/cd/0dcd5b04380313542f23052294af2a18_1347x460.png)