我想使用 swagger 来记录 laravel API,并让用户使用与petstore.swagger.io
这是我使用swagger-php
&l5-swagger
包所采取的步骤
- 作曲家需要 zircote/swagger-php
- 作曲家需要darkaonline/l5-swagger
- 添加
L5Swagger\L5SwaggerServiceProvider::class,
到 config/app.php 文件 - 向 BookController 添加注释
- 运行命令
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。这是目前唯一让我在编码挑战中退缩的事情,所以我有点急需帮助。