Lomkit / laravel-rest-api

Generate Api in seconds
https://laravel-rest-api.lomkit.com/
MIT License
298 stars 18 forks source link

API Resource Routes #73

Closed thiagolp90 closed 8 months ago

thiagolp90 commented 8 months ago

Description

Hi, I need to create specifically separate API resource routes. Example :

Rest::get('reviews', ReviewController::class);

Route::middleware('auth:sanctum')->group(function() {
    Rest::post('reviews', ReviewController::class);
});

index: all users store: only authenticated users update: i dont need destory: i dont need

It's possible ?

GautierDele commented 8 months ago

Hello @thiagolp90,

Actually it's possible, the Rest routes extends Laravel resource controller routing system:

Rest::resource('users', UsersController::class)->except([
    'create', 'store', 'update', 'destroy'
])

What I would recommand is to use Laravel Policy system by allowing Guest to index policy: https://laravel.com/docs/10.x/authorization#guest-users

Otherwise you could basically declare 2 Rest resource, one with an "auth" middleware

thiagolp90 commented 8 months ago

Hi @GautierDele, Thanks for your help.

My routes:

Rest::resource('reviews', ReviewController::class)->only(['search']);

Route::middleware('auth:sanctum')->group(function() {
    Rest::resource('reviews', ReviewController::class)->only(['mutate']);
});

And my policy:

public function update(User $user, Review $review): Response
{
    return Response::deny();
}

It's working pretty well, thanks again.