Automatically Generate API Documentation in Laravel with Swagger

Using tools like Swagger to automatically generate API documentation in Laravel is a convenient way to create and maintain documentation for your API. Swagger is an open-source tool that helps you describe, document, and test your APIs. Here's how you can use Swagger in Laravel to generate API documentation:

Step 1: Install Swagger for Laravel

Use composer to install the Swagger package for Laravel. A popular package for this purpose is darkaonline/l5-swagger.

composer require "darkaonline/l5-swagger:~9.0"

Step 2: Configure Swagger

After installation, you need to publish the Swagger documentation to the public directory of your Laravel application. You can do this by running Artisan commands:

php artisan vendor:publish --provider "L5Swagger\L5SwaggerServiceProvider"

Then, you need to edit the configuration file config/l5-swagger.php to configure Swagger for your application, including specifying the location where the documentation will be published.

Step 3: Use Annotations

Use annotations to describe the documentation of your Routes in your Laravel application. These annotations are used by Swagger to automatically generate the API documentation. For example:

/**
 * @OA\Get(
 *      path="/api/users",
 *      operationId="getUsersList",
 *      tags={"Users"},
 *      summary="Get list of users",
 *      description="Returns list of users",
 *      @OA\Response(
 *          response=200,
 *          description="Successful operation",
 *          @OA\JsonContent()
 *       )
 * )
 */

Bước 4: Truy cập Tài liệu API Swagger

Khi bạn đã cấu hình và đặt các chú thích tương ứng, bạn có thể truy cập tài liệu API Swagger bằng cách truy cập URL tương ứng với địa chỉ mà bạn đã cấu hình trong tệp cấu hình. Thông thường, URL này sẽ có định dạng http://your-app-url/api/documentation.

Swagger sẽ hiển thị tài liệu về các Route và thông tin chi tiết về cách sử dụng chúng, bao gồm các thông số và phản hồi kỳ vọng.

Sử dụng Swagger trong Laravel giúp tạo tài liệu API tự động và tiết kiệm thời gian trong việc tạo và duy trì tài liệu.