1. 程式人生 > >laravel 5.6整合 swagger3 和swagger-ui 步驟

laravel 5.6整合 swagger3 和swagger-ui 步驟

git地址

  • 安裝swagger
composer require zircote/swagger-php
  • 然後建立一個 swagger function getJson
/**
 * @SWG\Swagger(
 *   host="qs.com",
 *   consumes={"multipart/form-data"},
 *   produces={"application/json"},
 *   @SWG\Info(
 *     version="0.0.1",
 *     title="大黃專用",
 *     description="趣租樂管理系統介面"
 *   ),
 *   @SWG\Tag(
 *     name="User",
 *     description="使用者操作",
 *     externalDocs={"description":"基礎使用者操作介面"}
 *   ),
 *
 *   @SWG\Tag(
 *     name="MainPage",
 *     description="首頁模組",
 *   ),
 * )
 */
    public function getJSON()
    {
        //掃描地址
        $swagger = \Swagger\scan(app_path('Http/Controllers/'));
        return response()->json($swagger, 200);
    }

  • 路由到getJson 在需要api的function上寫註釋
/**
     * @SWG\Put(path="/swagger/my-data",
     *   tags={"User"},
     *   summary="測試get1",
     *   description="請求該介面需要先登入。",
     *   operationId="getMyData",
     *   produces={"application/json"},
     *   @SWG\Parameter(
     *     in="body",
     *     name="body",
     *     type="integer",
     *     description="拿資料的理由",
     *     required=true,
     *     schema={
     *           "$ref": "#/definitions/Pet"
     *       }
     *   ),
     *   @SWG\Response(response="200", description="操作成功")
     * )
     */
  • 如果有 schema 可以在返回值附近再次註釋返回格式
/**
*    @SWG\Definition(
*       definition="Pet",
*       @SWG\Property(
*           example="1|2",
*           property="code",
*           type="integer",
*           ),
*       @SWG\Property(
*           property="msg",
*           type="string"
*           ),
*       @SWG\Property(
*           property="info",
*           type="object",
*           example="{num1:1,num2:2}",
*           )
*   ),
*/
  • 下載好 把dist資料夾內所有內容 拷貝到web根目錄
  • index.html 修改內容
url 改成 getJson路由
新增 遮蔽右下角error
window.swaggerUi = new SwaggerUi({
  validatorUrl: null,
});

end