配置Swagger UI路由

时间:2019-06-06 07:31:20

标签: php swagger swagger-ui laravel-5.7 swagger-php

我想使用swagger记录laravel API,并让用户使用与petstore.swagger.io相似的途径查看应用程序

这是我使用swagger-phpl5-swagger软件包所采取的步骤

  1. 撰写者需要zircote / swagger-php
  2. 作曲家需要darkaonline / l5-swagger
  3. L5Swagger\L5SwaggerServiceProvider::class,添加到config / app.php文件
  4. 为BookController添加了注释
  5. 运行命令php artisan l5-swagger:generate

然后我像这样向BookController添加注释

/**
 * @OA\Info(
 *      version="1.0.0",
 *      title="Laravel Test OpenApi",
 *      description="L5 Swagger OpenApi description",
 *      @OA\Contact(
 *          email="menadio1@gmail.com"
 *      ),
 *     @OA\License(
 *         name="Apache 2.0",
 *         url="http://www.apache.org/licenses/LICENSE-2.0.html"
 *     )
 * )
 */
/**
 *  @OA\Server(
 *      url=L5_SWAGGER_CONST_HOST,
 *      description="L5 Swagger OpenApi dynamic host server"
 *  )
 *
 *  @OA\Server(
*      url="https://projects.dev/api/v1",
 *      description="L5 Swagger OpenApi Server"
 * )
 */

class BookController extends Controller
{
    /**
     * @OA\Get(
     *      path="/books",
     *      operationId="getBooksList",
     *      tags={"Books"},
     *      summary="Get list of books",
     *      description="Returns list of books",
     *      @OA\Response(
     *          response=200,
     *          description="successful operation"
     *       ),
     *       @OA\Response(response=400, description="Bad request"),
     *     )
     *
     * Returns list of books
     */
    public function index()
    {
        return BookResource::collection(Book::all());
    }
}

目前,我不知道在加载swagger UI来查看API文档时使用哪个url。这是目前唯一一次使我无法进行编码挑战的事情,所以我迫切需要帮助。

2 个答案:

答案 0 :(得分:0)

转到项目的根目录并运行此命令以生成文档。

php artisan l5-swagger:generate   

然后导航到http://yourapp.local/api/docs以查看您的招摇用户界面

答案 1 :(得分:0)

Phew ...我能够使用http://localhost:8000/api/documentation

加载大摇大摆的UI并查看api文档。

我希望这将为其他人在第一次使用摇摇欲坠时节省大量时间。