Edit file File name : api.php Content :<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use App\Http\Controllers\Api\V1\AnalyticsController; use App\Http\Controllers\Api\V1\DeepLinkController; use App\Http\Controllers\Api\V1\AppListController; use App\Http\Controllers\Api\V1\FeedbackController; use App\Http\Controllers\Web\V1\DownloadController; use App\Http\Controllers\Api\V1\CommunityController; use App\Http\Controllers\Api\V1\PostController; use App\Http\Controllers\Api\V1\CommentController; use App\Http\Controllers\Api\V1\SocialAuthController; use App\Http\Controllers\Api\V1\BlogPostController; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); }); Route::middleware('verify.apikey')->prefix('v1')->group(function () { Route::post('/events', [AnalyticsController::class, 'handleEvent']); Route::post('/events/batch', [AnalyticsController::class, 'handleBatchEvents']); // Handle deferred link requests from iOS SDK (first app launch) Route::post('/deferred-links', [DeepLinkController::class, 'handleDeferredLinks']); Route::post('/links/create', [DeepLinkController::class, 'createDynamicLink']); Route::get('/apps', [AppListController::class, 'index']); Route::get('/app', [AppListController::class, 'getApp']); Route::post('/feedback', [FeedbackController::class, 'feedback']); }); // Public API endpoints (no authentication required) Route::post('/track-download', [DownloadController::class, 'trackDownload']); // Community API Routes Route::prefix('v1')->group(function () { Route::post('/social-auth/{provider}', [SocialAuthController::class, 'handleProvider']); // Public community endpoints Route::get('/communities', [CommunityController::class, 'index']); Route::get('/community', [CommunityController::class, 'show']); // Public posts endpoints Route::get('/posts', [PostController::class, 'index']); Route::get('/posts/{id}', [PostController::class, 'show']); // Public comments endpoints Route::get('/comments', [CommentController::class, 'index']); Route::get('/comments/{id}', [CommentController::class, 'show']); // Public blog endpoints (great for SEO) Route::get('/blogs', [BlogPostController::class, 'getAllBlogs']); Route::get('/blog-posts', [BlogPostController::class, 'index']); Route::get('/blog-posts/{slug}', [BlogPostController::class, 'show']); Route::get('/blogs/search', [BlogPostController::class, 'search']); Route::get('/blogs/recent', [BlogPostController::class, 'recent']); Route::get('/blogs/by-app', [BlogPostController::class, 'byApp']); // Protected community endpoints (require authentication) Route::middleware('auth:sanctum')->group(function () { // Community management Route::post('/communities', [CommunityController::class, 'store']); Route::put('/communities/{slug}', [CommunityController::class, 'update']); Route::delete('/communities/{slug}', [CommunityController::class, 'destroy']); // Post management Route::post('/posts', [PostController::class, 'store']); Route::put('/posts/{id}', [PostController::class, 'update']); Route::delete('/posts/{id}', [PostController::class, 'destroy']); Route::post('/posts/{id}/like', [PostController::class, 'toggleLike']); // Comment management Route::post('/comments', [CommentController::class, 'store']); Route::put('/comments/{id}', [CommentController::class, 'update']); Route::delete('/comments/{id}', [CommentController::class, 'destroy']); Route::post('/comments/{id}/like', [CommentController::class, 'toggleLike']); // Blog management Route::post('/blog-posts', [BlogPostController::class, 'store']); Route::put('/blog-posts/{blogPost}', [BlogPostController::class, 'update']); Route::delete('/blog-posts/{blogPost}', [BlogPostController::class, 'destroy']); }); }); Save