安装
https://packagist.org/packages/darkaonline/l5-swagger
在该网页上根据所laravel版本选择swagger版本
composer require darkaonline/l5-swagger:x.x.x
运行
php artisan vendor:publish
选择L5Swagger\L5SwaggerServiceProvider
这项
这时会添加两个文件
- /config/l5-swagger.php
- /resources/views/vendor/l5-swagger/index.blade.php
配置
在app/Http/Controllers/Controller.php
文件中class
前添加注释
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
/**
* @SWG\Swagger(
* basePath="/calculate-rates",
* @SWG\Info(
* title="项目名称 API",
* version="1.0.0"
* )
* )
*/
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
}
运行命令
php artisan l5-swagger:generate
打开你的项目网址http://localhost/api/documentation
,你会看到swagger已经运行成功了,
如果需要开启自动生成,可在配置文件中设置generate_always
参数为true
'generate_always' => env('L5_SWAGGER_GENERATE_ALWAYS', true),
在config\l5-swagger.php
文件中
title 设置页面标题
'api' => [
/*
|--------------------------------------------------------------------------
| Edit to set the api's title
|--------------------------------------------------------------------------
*/
'title' => 'L5 Swagger UI',
],
routes下面的分别是
访问API文档接口的路径
用于访问已分析的Swagger注释的路由
OAuth2身份验证回调的路由
'routes' => [
/*
|--------------------------------------------------------------------------
| Route for accessing api documentation interface
|--------------------------------------------------------------------------
*/
'api' => 'api/documentation',
/*
|--------------------------------------------------------------------------
| Route for accessing parsed swagger annotations.
|--------------------------------------------------------------------------
*/
'docs' => 'docs',
/*
|--------------------------------------------------------------------------
| Route for Oauth2 authentication callback.
|--------------------------------------------------------------------------
*/
效果图:
常用字段简要说明:
接口描述 (@SWG\Get, @SWG\Post 等) 常用字段:
summary - string
接口的简要介绍,会显示在接口标头上,不能超过120个字符
description - string
接口的详细介绍
externalDocs - string
外部文档链接
operationId - string
全局唯一的接口标识
consumes - [string]
接口接收的MIME类型
produces - [string]
接口返回的MIME类型,如 application/json
schemes - [string]
接口所支持的协议,取值仅限: "http", "https", "ws", "wss"
parameters - [Parameter Object | Reference Object]
参数列表
参数描述 (@SWG\Parameter) 常用字段:
name - string
参数名. 通过路径传参(in 取值 "path")时有注意事项,没用到,懒得看了...
in - string
参数从何处来. 必填. 取值仅限: "query", "header", "path", "formData", "body"
description - string
参数描述. 最好别太长
type - string
参数类型. 取值仅限: "string", "number", "integer", "boolean", "array", "file"
required - boolean
参数是否必须. 通过路径传参(in 取值 "path")时必须为 true.
default - *
默认值. 在你打算把参数通过 path 传递时规矩挺多,我没用到.用到的同学自己看文档吧.