Maison >développement back-end >tutoriel php >Comment documenter plusieurs API à Laravel avec Scramble

Comment documenter plusieurs API à Laravel avec Scramble

Robert Michael Kim
Robert Michael Kimoriginal
2025-03-05 15:53:11919parcourir

How to document multiple APIs in Laravel with Scramble

Les applications Laravel gèrent souvent plusieurs API, bénéfiques pour le versioning, la séparation d'un accès public et interne, ou répondant à différents besoins frontend / backend. Brouillé simplifie la documentation de ces diverses API.

La configuration par défaut de Scramble documente une API "par défaut", englobant les points de terminaison commençant par api/. L'ajout de plus d'API implique une exposition à l'enregistrement, à la configuration et à la documentation.

Exemple: documenter plusieurs versions API

Considérons une application avec deux versions API:

// routes/api.php
Route::prefix('v1')->group(function () {
    // v1 routes
});

Route::prefix('v2')->group(function () {
    // v2 routes
});

pour documenter v1, ajustez la configuration de brouillage:

// config/scramble.php
...
'api_path' => 'api/v1',
...

pour v2, enregistrez-le explicitement dans la méthode boot d'un fournisseur de services:

// app/Providers/AppServiceProvider.php
use Dedoc\Scramble\Facades\Scramble;

public function boot()
{
    Scramble::registerApi('v2', ['api_path' => 'api/v2']);
}

Enregistrez les routes de documentation v2 dans routes/web.php:

// routes/web.php
use Dedoc\Scramble\Facades\Scramble;

Scramble::registerUiRoute('docs/v2', api: 'v2');
Scramble::registerJsonSpecificationRoute('docs/v2/api.json', api: 'v2');

Maintenant, les deux API sont documentées:

  • V1 Documentation:

    • GET docs/api: UI pour la documentation V1
    • GET docs/api.json: Spécification OpenAPI 3.1.0 pour v1
  • V2 Documentation:

    • GET docs/v2: UI pour la documentation V2
    • GET docs/v2/api.json: Spécification OpenAPI 3.1.0 pour v2

Contrôle l'accès à la documentation

Pour les API publiques et privées, gérez le middleware. Par défaut, la documentation est limitée aux environnements de non-production via RestrictedDocsAccess middleware.

pour rendre v1 public, supprimez RestrictedDocsAccess de la configuration par défaut:

// config/scramble.php
...
'middleware' => [
    'web',
],
...

pour restreindre v2 à la non-production:

// app/Providers/AppServiceProvider.php
use Dedoc\Scramble\Http\Middleware\RestrictedDocsAccess;

public function boot()
{
    Scramble::registerApi('v2', [
        'api_path' => 'api/v2',
        'middleware' => [
            'web',
            RestrictedDocsAccess::class,
        ],
    ]);
}

Maintenant, v1 est accessible au public en production, tandis que v2 reste limité à la non-production.

Personnalisation des routes de documentation V1

pour personnaliser les routes par défaut v1 (GET docs/api, GET docs/api.json), désactivez l'enregistrement par défaut de l'itinéraire:

// app/Providers/AppServiceProvider.php
public function register()
{
    Scramble::disableDefaultRoutes();
}

Ensuite, enregistrez-les manuellement:

// routes/web.php
Scramble::registerUiRoute('docs/v1', api: 'default');
Scramble::registerJsonSpecificationRoute('docs/v1/api.json', api: 'default');

Conclusion

Scramble gère efficacement la documentation de l'API multiple dans une seule application Laravel, offrant un contrôle granulaire sur les itinéraires, le middleware et la configuration pour chaque API. En savoir plus sur: https://www.php.cn/link/0fcbc3c0cf262c771001930af2406bbc

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn