thinkphp swagger 接入

使用 thinkphp6 swagger 做开发文档

1. 接入 swagger 到think 项目中 zircote gitbub

composer require zircote/swagger-php

2. 写一份简单的用例


/**
 * @OA\Info(title="验证码", version="0.1")
 */
class Send extends BaseController
{
    /**
     * @OA\Get(
     *     tags={"验证码"},
     *     path="/api/sendCode",
     *     summary="发送验证码",
     *     @OA\Parameter(name="phone",in="query",@OA\Schema(type="string"),description="手机号"),
     *     @OA\Parameter(name="type",in="query",@OA\Schema(type="integer"),description="1: 注册 , 2:登录, 3: 忘记密码, 4: 手机号登录"),
     *     @OA\Response(response="200", description="发送成功或者失败")
     * )
     */
   public function code() {
       ....
   }

}

3. 接入 swagger-ui

  1. 在对应的 github 上下载 一份 swagger-ui 文件,
git clone https://github.com/swagger-api/swagger-ui.git
  1. 提取dist 文件夹 (这个文件夹是可以独立部署的), 配置到你想要的放置服务的位置
    我配置到项目中, 这样可以不用另起服务, 正式环境下隐藏入口即可
# 文件复制到 public 目录下的 , 重命名到apidoc目录
cp dist /project/public/apidoc
  1. 修改 swagger-initializer.js
window.onload = function() {
  //

  // the following lines will be replaced by docker/configurator, when it runs in a docker-container
  window.ui = SwaggerUIBundle({
    url: "/swagger",   ## !!! 注意这里是你要使用json 地址 , 后面会提到如何创建
    dom_id: '#swagger-ui',
    deepLinking: true,
    presets: [
      SwaggerUIBundle.presets.apis,
      SwaggerUIStandalonePreset
    ],
    plugins: [
      SwaggerUIBundle.plugins.DownloadUrl
    ],
    layout: "StandaloneLayout"
  });

  //
};

3. 使用2中方式来加载接口的json

  1. 使用命令行来获取json
#!/bin/zsh
### 生成 swagger 的命令
./vendor/bin/openapi ./app/api/controller -o /Users/liuliang/myWorkplace/apidoc/api.json
  1. 使用路由配置 (推荐)
# 添加到应用的路由上 route/app.php
Route::get('/swagger', function() {
    $openapi = \OpenApi\Generator::scan(['../app/api/controller']);
    header('Content-Type: application/json');
    echo $openapi->toJson();
});
  1. 启动项目基本就ok 了


    欢迎点赞鼓励

你可能感兴趣的:(thinkphp swagger 接入)