我们访问packagist网站,搜索swagger,这里我们选择下载量最多的包
在public目录下
git clone https://github.com/swagger-api/swagger-uigit clone拷贝完之后呢,其实我们只需要 dist目录就行,其他的目录以及文件可以删掉
创建SwaggerController配置数据
php artisan make:controller SwaggerControllerSwaggerController:
namespace App\Http\Controllers; use Illuminate\Http\Request; use Swagger\Annotations\Info; use Swagger\Annotations\OA; /** * @OA\Info(title="My First API", version="0.1") */ /** * @OA\Get( * path="/api/resource.json", * @OA\Response(response="200", description="An example resource") * ) */ class SwaggerController extends Controller { public function doc() { $swagger = \OpenApi\scan(app_path('Http/Controllers/Api')); return response()->json($swagger); } }同时配置路由
/** * Swagger-UI */ Route::get('/swagger/doc', 'SwaggerController@doc');修改public/dist/index.html
window.onload = function() { // Begin Swagger UI call region const ui = SwaggerUIBundle({ // url: "https://petstore.swagger.io/v2/swagger.json", url: "/swagger/doc", //新的配置 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 }这样配置完毕,就可以直接通过/swagger-ui/dist/index.html路径来访问到swagger文档了
更多使用方法参考:https://github.com/zircote/swagger-php/blob/master/docs/Getting-started.md
当然,要注意的是部分注解已经在新版本的swagger中弃用了,详细请看:https://github.com/zircote/swagger-php/blob/master/docs/Migrating-to-v3.md
demo可以参考:https://github.com/zircote/swagger-php/tree/master/Examples/petstore.swagger.io
参考博客:https://ld246.com/article/1548065819985