Rumah >pembangunan bahagian belakang >tutorial php >Cara mendokumentasikan pelbagai API di Laravel dengan perebutan

Cara mendokumentasikan pelbagai API di Laravel dengan perebutan

Robert Michael Kim
Robert Michael Kimasal
2025-03-05 15:53:11919semak imbas

How to document multiple APIs in Laravel with Scramble

Aplikasi Laravel sering menguruskan pelbagai API, bermanfaat untuk versi, memisahkan akses awam dan dalaman, atau memenuhi keperluan frontend/backend yang berbeza. Perebutan memudahkan mendokumentasikan API yang pelbagai ini.

Dokumen Persediaan Lalai Scramble Sebuah API "lalai", merangkumi titik akhir bermula dengan

. Menambah lebih banyak API melibatkan pendaftaran, konfigurasi, dan pendedahan dokumentasi. api/ Contohnya: Mendokumentasikan pelbagai versi API

Pertimbangkan permohonan dengan dua versi API:

untuk dokumen

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

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

v1 untuk

, mendaftarkannya secara eksplisit dalam kaedah
// config/scramble.php
...
'api_path' => 'api/v1',
...
pembekal perkhidmatan:

v2 boot Daftar Laluan Dokumentasi

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

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

v2 routes/web.php Sekarang, kedua -dua API didokumenkan:

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

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

Dokumentasi

    V1:
  • : ui untuk dokumentasi v1
    • GET docs/api: OpenAPI 3.1.0 Spesifikasi untuk V1
    • GET docs/api.json
  • Dokumentasi V2:
  • : ui untuk dokumentasi v2
    • GET docs/v2: OpenAPI 3.1.0 Spesifikasi untuk V2
    • GET docs/v2/api.json
  • Mengawal Akses Dokumentasi

Untuk API awam dan swasta, menguruskan middleware. Secara lalai, dokumentasi terhad kepada persekitaran bukan pengeluaran melalui middleware.

untuk membuat RestrictedDocsAccess awam, keluarkan

dari konfigurasi lalai:

v1 RestrictedDocsAccess untuk mengehadkan

kepada bukan pengeluaran:
// config/scramble.php
...
'middleware' => [
    'web',
],
...

v2 sekarang,

boleh diakses secara terbuka dalam pengeluaran, sementara
// app/Providers/AppServiceProvider.php
use Dedoc\Scramble\Http\Middleware\RestrictedDocsAccess;

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

v1 v2 Menyesuaikan Laluan Dokumentasi V1

untuk menyesuaikan laluan lalai (

,

), Lumpuhkan pendaftaran laluan lalai: v1 GET docs/api GET docs/api.json Kemudian, daftar mereka secara manual:

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

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

berebut dengan cekap mengendalikan pelbagai dokumentasi API dalam satu aplikasi Laravel tunggal, menawarkan kawalan berbutir ke atas laluan, middleware, dan konfigurasi untuk setiap API. Ketahui lebih lanjut di: https://www.php.cn/link/0fcbc3c0cf262c771001930af2406bbc

Atas ialah kandungan terperinci Cara mendokumentasikan pelbagai API di Laravel dengan perebutan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn