Api или web Laravel 5.3
У меня есть вопрос, который может звучать глупо для вас, поэтому, пожалуйста, простите меня.
Я не уверен, когда я использую файл route/api.php.
Если я хочу удалить запись из datatable с помощью ajax, мне нужно создать отдельный контроллер и поместить маршрут в api.php, или я могу использовать тот же контроллер, который я использую для всего остального, и поместить маршрут в сеть .php?
Ответы
Ответ 1
Я не уверен, читали ли вы документацию по Laravel или насколько хорошо вы знакомы с Laravel, но в Laravel 5.3 у вас есть веб-маршруты и API-маршруты в отдельных файлах.
Вы используете маршруты API только для регистрации вашего API (то есть, если вы создаете службу API остальных), и все маршруты, размещенные там, будут иметь префикс по умолчанию с /api. То есть, если вы определяете маршрут/пользователя в файле api, он будет автоматически иметь префикс /api, поэтому конечной точкой будет www.yourapplication.com/api/user.
Если вы не создаете службу API остальных или что-то подобное, вообще не используйте этот файл, используйте веб файл для определения всех маршрутов вашего приложения.
Также рассмотрите возможность посещения веб-сайта Laracast, так как они имеют хорошее представление о новых изменениях в Laravel 5.3, включая маршруты web и api. Надеюсь, это поможет вам.
Ответ 2
Все маршруты, размещенные в api.php, будут иметь префикс /api, о котором также упоминалось bernadd, есть и другие отличия:
в этой ссылке (https://mattstauffer.co/blog/routing-changes-in-laravel-5-3) вы можете найти разницу между api и web в коде laravel:
в приложении \Providers\RouteServiceProvider:
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
//
}
protected function mapApiRoutes()
{
Route::group([
'middleware' => ['api', 'auth:api'],
'namespace' => $this->namespace,
'prefix' => 'api',
], function ($router) {
require base_path('routes/api.php');
});
}
protected function mapWebRoutes()
{
Route::group([
'namespace' => $this->namespace, 'middleware' => 'web',
], function ($router) {
require base_path('routes/web.php');
});
}
в приложении \Http\Kernel.php в разделе "protected $middlewareGroups" вы можете увидеть это:
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
И
в config\auth.php: В этом файле комментариев вы можете четко узнать разницу между по умолчанию "auth" ( "guard" = > "web" ) и "auth: api"
Ответ 3
Обычно web.php используется для простых веб-приложений, таких как CMS, в то время как api.php используется для мобильных приложений и интерфейсных сред, таких как vuejs. Ниже подробно описаны различия между ними.
![Normally, web.php is used for simple web applications like CMS while api.php is used for mobile applications and front-end frameworks like vuejs]()
Источник: DecodeWeb.in