Получение 404 в laravel 6.x - PullRequest
       6

Получение 404 в laravel 6.x

0 голосов
/ 26 сентября 2019

Я создал ApiController в App \ Http \ Controllers \ Api \ v1

Также создан auth с использованием laravel/ui

Созданная по умолчанию функция для внешнего интерфейса работает отлично.

Но проблема заключается в том, когда пытаются вызвать ApiController

Мой API Rout e файл, как показано ниже

Route::group(['prefix' => 'api/v1', 'namespace' => 'Api\v1'], function () {
  Route::post('register', 'ApiController@register');
});

И мой контроллер API выглядит как

namespace App\Http\Controllers\Api\v1;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;

class ApiController extends Controller
{
    public function register(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
            'api_token' => Str::random(60),
        ]);
    }
}

До 404 это была ошибка csrf, и я решил ее с помощью

protected $except = [
        '/register',
    ];

в Http\ Middleware \ VerifyCsrfToken

Я не могу понять два вопроса

  1. Как except весь мой api звонок от CSRF с использованием $ за исключением ..

  2. Как решить 404 для register метода, я использую почтальон с запросом POST иURL звонка http://localhost/larablog/api/v1/register

1 Ответ

2 голосов
/ 26 сентября 2019

Маршруты, определенные в файле routes/api.php, вложены в группу маршрутов с помощью RouteServiceProvider.В этой группе автоматически применяется префикс /api URI, поэтому вам не нужно вручную применять его к каждому маршруту в файле.Вы можете изменить префикс и другие параметры группы маршрутов, изменив класс RouteServiceProvider.

1) Ошибка 404: - Удалить api из Префикс маршрута .

Route::group(['prefix' => 'v1', 'namespace' => 'Api\v1'], function () {
  Route::post('register', 'ApiController@register');
});

http://localhost/larablog/api/v1/register

1.Если вы используете группу маршрутов:

Route::group(['prefix' => 'v1', 'namespace' => 'Api\v1'], function () {
  Route::post('register', 'ApiController@register');
});

Ваш массив $except выглядит следующим образом:

protected $except = ['v1/register'];

2.Если вы хотите исключить все маршруты в v1

, ваш массив $except выглядит следующим образом:

protected $except = ['v1/*'];
...