JezK
Edit File: api.php
<?php use App\Http\Controllers\Api\V1\ArticleController; use App\Http\Controllers\Api\V1\CategoryController; use App\Http\Controllers\Api\V1\SettingController; use Illuminate\Support\Facades\Route; // ── Public API v1 ── Route::prefix('v1')->name('api.v1.')->group(function () { // Articles Route::get('/articles', [ArticleController::class, 'index'])->name('articles.index'); Route::get('/articles/featured', [ArticleController::class, 'featured'])->name('articles.featured'); Route::get('/articles/{slug}', [ArticleController::class, 'show'])->name('articles.show'); Route::post('/articles/{id}/comments', [\App\Http\Controllers\Api\V1\CommentController::class, 'store'])->name('articles.comments.store'); // Categories Route::get('/categories', [CategoryController::class, 'index'])->name('categories.index'); Route::get('/categories/{slug}/articles', [CategoryController::class, 'articles'])->name('categories.articles'); // Registrations Route::post('/registrations', [\App\Http\Controllers\Api\V1\RegistrationController::class, 'store'])->name('registrations.store'); // Tags Route::get('/tags', function () { return \App\Http\Resources\CategoryResource::collection( \App\Models\Tag::withCount('articles')->orderBy('name')->get() ); })->name('tags.index'); // Galleries Route::get('/gallery-categories', [\App\Http\Controllers\Api\V1\GalleryCategoryController::class, 'index'])->name('gallery-categories.index'); Route::get('/galleries', [\App\Http\Controllers\Api\V1\GalleryController::class, 'index'])->name('galleries.index'); // Settings Route::get('/settings', [SettingController::class, 'index'])->name('settings.index'); });