2

我想使用 swagger 来记录 laravel API,并让用户使用与petstore.swagger.io

这是我使用swagger-php&l5-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。这是目前唯一让我在编码挑战中退缩的事情,所以我有点急需帮助。

4

2 回答 2

1

呼……我能够加载招摇的 UI 并使用查看 api 文档http://localhost:8000/api/documentation

我希望这会在第一次使用 swagger 时为其他人节省大量时间。

于 2019-06-06T08:11:33.423 回答
0

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

php artisan l5-swagger:generate   

然后导航到http://yourapp.local/api/docs来查看你的 swagger ui

于 2019-06-06T07:52:18.210 回答