运行之前必须在代码中添加一些注释php artisan l5-swagger:generate
。首先,转到app/Http/Controllers/Controller.php
并在类声明之前添加如下 phpdoc 注释块:
/**
* @OA\Info(title="My First API", version="0.1")
*/
此注释本身足以解决您所描述的问题,但是如果您执行php artisan l5-swagger:generate
您将再次看到以下异常:
ErrorException : Required @OA\PathItem() not found
at /home/nathanael/dev/laravel-projects/laravel-swagger/vendor/zircote/swagger-php/src/Logger.php:39
35| $this->log = function ($entry, $type) {
36| if ($entry instanceof Exception) {
37| $entry = $entry->getMessage();
38| }
> 39| trigger_error($entry, $type);
40| };
41| }
42|
43| /**
Exception trace:
1 trigger_error("Required @OA\PathItem() not found")
/home/nathanael/dev/laravel-projects/laravel-swagger/vendor/zircote/swagger-php/src/Logger.php:39
2 OpenApi\Logger::OpenApi\{closure}("Required @OA\PathItem() not found")
/home/nathanael/dev/laravel-projects/laravel-swagger/vendor/zircote/swagger-php/src/Logger.php:71
Please use the argument -v to see more details.
这是因为控制器中必须至少有一个带有描述路由的注释的方法。
您可以轻松地在应用程序中创建资源来测试运行php artisan make:controller ProjectsController -r
并添加Route::resource('projects', 'ProjectsController')
to routes/web.php
。
创建控制器后打开它并在index方法之前添加以下phpdoc注释块,例如:
/**
* @OA\Get(
* path="/projects",
* @OA\Response(response="200", description="Display a listing of projects.")
* )
*/
然后,运行php artisan l5-swagger:generate
再次,您必须在终端中看到成功消息。