Загрузка...

Как использовать laravel-request-docs для документирования API в Laravel

laravel-request-docs - пакет для создания API документации в Laravel. Альтернатива Swagger.
The Hassle-Free automatic API documentation generation for Laravel. A Swagger alternative. Supports Open API 3.0.0

Laravel — это мощный PHP-фреймворк, который упрощает разработку веб-приложений. Одним из ключевых аспектов разработки на Laravel является обработка HTTP-запросов. Для документирования API в Laravel часто используется пакет laravel-request-docs. Этот пакет представляет собой простой инструмент для документирования API, который является альтернативой Swagger и поддерживает OpenAPI. Он позволяет автоматически генерировать документацию для ваших запросов, что значительно упрощает процесс разработки и поддержки кода.

В этой статье мы рассмотрим, как использовать laravel-request-docs для документирования API в Laravel, а также как его использовать совместно с пакетом mezatsong/laravel-swagger-docs.

Установка

Первым шагом является установка пакета laravel-request-docs. Вы можете сделать это с помощью Composer:

composer require --dev laravel-request-docs

После установки пакета, вам нужно будет опубликовать конфигурационный файл и ресурсы пакета:

php artisan vendor:publish --provider="LaravelRequestDocs\LaravelRequestDocsServiceProvider"

Эта команда создаст файл конфигурации laravel-request-docs.php в директории config.

Конфигурация

После публикации конфигурационного файла, вы можете настроить его под свои нужды. Основные параметры конфигурации включают:

  • output_path: Путь, по которому будет сохранена сгенерированная документация.
  • title: Заголовок документации.
  • description: Описание документации.
  • routes: Массив маршрутов, для которых будет генерироваться документация.

Пример конфигурационного файла:

return [
    'output_path' => public_path('docs'),
    'title' => 'API Documentation',
    'description' => 'Documentation for the API endpoints',
    'routes' => [
        'api/*',
    ],
];

Генерация документации

После настройки конфигурационного файла, вы можете сгенерировать документацию с помощью команды Artisan:

php artisan laravel-request-docs:export

Эта команда проанализирует ваши маршруты и запросы, а затем сгенерирует документацию в указанном вами пути.

Структура документации

Сгенерированная документация будет содержать следующие разделы:

  1. Общая информация: Заголовок и описание документации.
  2. Маршруты: Список всех маршрутов, для которых была сгенерирована документация.
  3. Запросы: Детальная информация о каждом запросе, включая метод, URL, параметры, заголовки и примеры ответов.

Пример использования

Рассмотрим пример использования laravel-request-docs на практике. Допустим, у вас есть следующий маршрут в вашем приложении:

Route::get('/api/users', [UserController::class, 'index']);

В контроллере UserController у вас есть метод index, который возвращает список пользователей:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class UserController extends Controller
{
    /**
     * Get a list of users.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\JsonResponse
     */
    public function index(Request $request)
    {
        // Логика получения пользователей
        return response()->json([
            'users' => [
                ['id' => 1, 'name' => 'John Doe'],
                ['id' => 2, 'name' => 'Jane Doe'],
            ],
        ]);
    }
}

В этом примере используется PHPDoc-комментарий для метода index, который описывает, что делает этот метод. Это поможет laravel-request-docs создать более подробную документацию.

После настройки конфигурационного файла и генерации документации, вы получите документацию, которая будет содержать информацию о маршруте /api/users, включая метод, параметры и примеры ответов.

Использование совместно с mezatsong/laravel-swagger-docs

Если вы уже используете пакет mezatsong/laravel-swagger-docs для генерации документации Swagger, вы можете использовать laravel-request-docs для дополнения или альтернативной генерации документации. Для этого просто установите оба пакета и настройте их конфигурационные файлы.

Features

laravel-request-docs предлагает множество функций, которые делают его мощным инструментом для документирования API:

  • Light and Dark mode: Поддержка светлой и темной тем для удобства чтения.
  • Automatic rules fetching from injected Request and by regexp: Автоматическое извлечение правил из введенных запросов и с помощью регулярных выражений.
  • Automatic routes fetching from Laravel Routes: Автоматическое извлечение маршрутов из Laravel.
  • Support for Laravel logs: Поддержка логов Laravel.
  • Support for SQL query and query time: Поддержка SQL-запросов и времени их выполнения.
  • Support for HTTP response time and memory consumption: Поддержка времени ответа HTTP и потребления памяти.
  • Support for Authorization Headers: Поддержка заголовков авторизации.
  • Support for File uploads: Поддержка загрузки файлов.
  • Support for Eloquents events: Поддержка событий Eloquent.
  • Display extra documentation using markdown: Возможность отображения дополнительной документации с использованием Markdown.
  • Saves history previous requests: Сохранение истории предыдущих запросов.
  • Added filters to sort, group and filter routes by methods, controllers, middlewares, routes: Добавлены фильтры для сортировки, группировки и фильтрации маршрутов по методам, контроллерам, посредникам и маршрутам.
  • Export Laravel API, routes, rules and documentation to Postman and OpenAPI 3.0.0: Экспорт Laravel API, маршрутов, правил и документации в Postman и OpenAPI 3.0.0.

Скриншоты

Для лучшего понимания, вот несколько скриншотов из официальной документации:

Темный и светлый режимы

 

  • Использует локальное хранилище для сохранения истории предыдущих запросов и заголовков запросов.
  • Хронология запросов, SQL, ответов и событий ниже:

 

 

Настройки для сортировки, группировки и фильтрации

 

Заключение

laravel-request-docs — это мощный и простой инструмент для документирования API в Laravel. Он поддерживает OpenAPI и может быть использован как альтернатива Swagger. С помощью этого пакета вы можете сосредоточиться на написании кода, а не на его документировании.

Если вы хотите узнать больше о возможностях laravel-request-docs, посетите официальную документацию пакета.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *