Lộ trình

Trong phần này, chúng tôi sẽ nhanh chóng trình bày về các router của route.


Các tuyến route web

Nếu bạn nhìn vào bên trongwave/routes/web.php bạn sẽ thấy tất cả các tuyến web của Wave:

<?php

Route::impersonate();

Route::get('/', '\Wave\Http\Controllers\[email protected]')->name('wave.home');
Route::get('@{username}', '\Wave\Http\Controllers\[email protected]')->name('wave.profile');

// Documentation routes
Route::view('docs/{page?}', 'docs::index')->where('page', '(.*)');

// Additional Auth Routes
Route::get('logout', 'Auth\[email protected]')->name('logout');
Route::get('user/verify/{verification_code}', 'Auth\[email protected]')->name('verify');
Route::post('register/complete', '\Wave\Http\Controllers\Auth\[email protected]')->name('wave.register-complete');

Route::get('blog', '\Wave\Http\Controllers\[email protected]')->name('wave.blog');
Route::get('blog/{category}', '\Wave\Http\Controllers\[email protected]')->name('wave.blog.category');
Route::get('blog/{category}/{post}', '\Wave\Http\Controllers\[email protected]')->name('wave.blog.post');

Route::view('install', 'wave::install')->name('wave.install');

/***** Pages *****/
Route::get('p/{page}', '\Wave\Http\Controllers\[email protected]');

/***** Pricing Page *****/
Route::view('pricing', 'theme::pricing')->name('wave.pricing');

/***** Billing Routes *****/
Route::post('/billing/webhook', '\Wave\Http\Controllers\[email protected]');
Route::post('paddle/webhook', '\Wave\Http\Controllers\[email protected]');
Route::post('checkout', '\Wave\Http\Controllers\[email protected]')->name('checkout');

Route::get('test', '\Wave\Http\Controllers\[email protected]');

Route::group(['middleware' => 'wave'], function () {
	Route::get('dashboard', '\Wave\Http\Controllers\[email protected]')->name('wave.dashboard');
});

Route::group(['middleware' => 'auth'], function(){
	Route::get('settings/{section?}', '\Wave\Http\Controllers\[email protected]')->name('wave.settings');

	Route::post('settings/profile', '\Wave\Http\Controllers\[email protected]')->name('wave.settings.profile.put');
	Route::put('settings/security', '\Wave\Http\Controllers\[email protected]')->name('wave.settings.security.put');

	Route::post('settings/api', '\Wave\Http\Controllers\[email protected]')->name('wave.settings.api.post');
	Route::put('settings/api/{id?}', '\Wave\Http\Controllers\[email protected]')->name('wave.settings.api.put');
	Route::delete('settings/api/{id?}', '\Wave\Http\Controllers\[email protected]')->name('wave.settings.api.delete');

	Route::get('settings/invoices/{invoice}', '\Wave\Http\Controllers\[email protected]')->name('wave.invoice');

	Route::get('notifications', '\Wave\Http\Controllers\[email protected]')->name('wave.notifications');
	Route::get('announcements', '\Wave\Http\Controllers\[email protected]')->name('wave.announcements');
	Route::get('announcement/{id}', '\Wave\Http\Controllers\[email protected]')->name('wave.announcement');
	Route::post('announcements/read', '\Wave\Http\Controllers\[email protected]')->name('wave.announcements.read');
	Route::get('notifications', '\Wave\Http\Controllers\[email protected]')->name('wave.notifications');
	Route::post('notification/read/{id}', '\Wave\Http\Controllers\[email protected]')->name('wave.notification.read');

    /********** Checkout/Billing Routes ***********/
    Route::post('cancel', '\Wave\Http\Controllers\[email protected]')->name('wave.cancel');
    Route::view('checkout/welcome', 'theme::welcome');

    Route::post('subscribe', '\Wave\Http\Controllers\[email protected]')->name('wave.subscribe');
	Route::view('trial_over', 'theme::trial_over')->name('wave.trial_over');
	Route::view('cancelled', 'theme::cancelled')->name('wave.cancelled');
    Route::post('switch-plans', '\Wave\Http\Controllers\[email protected]')->name('wave.switch-plans');
});

Route::group(['middleware' => 'admin.user'], function(){
    Route::view('admin/do', 'wave::do');
});

Tiếp theo, nếu bạn nhìn vào bên trong routes/web.php , bạn sẽ thấy dòng sau:

// Include Wave Routes
Wave::routes();

Dòng này bao gồm tất cả các tuyến Wave vào ứng dụng của bạn.

Các tuyến API route

Các tuyến API của Wave được đặt tạiwave/routes/api.php . Nội dung của tệp như sau:

Route::post('login', '\Wave\Http\Controllers\API\[email protected]');
Route::post('register', '\Wave\Http\Controllers\API\[email protected]');
Route::post('logout', '\Wave\Http\Controllers\API\[email protected]');
Route::post('refresh', '\Wave\Http\Controllers\API\[email protected]');
Route::post('token', '\Wave\Http\Controllers\API\[email protected]');

// BROWSE
Route::get('/{datatype}', '\Wave\Http\Controllers\API\[email protected]');

// READ
Route::get('/{datatype}/{id}', '\Wave\Http\Controllers\API\[email protected]');

// EDIT
Route::put('/{datatype}/{id}', '\Wave\Http\Controllers\API\[email protected]');

// ADD
Route::post('/{datatype}', '\Wave\Http\Controllers\API\[email protected]');

// DELETE
Route::delete('/{datatype}/{id}', '\Wave\Http\Controllers\API\[email protected]');

Sau đó, nếu bạn nhìn vào bên trongroutes/api.php , bạn sẽ thấy dòng sau:

// Include Wave Routes
Wave::api();

Dòng này bao gồm tất cả các tuyến API Wave vào API ứng dụng của bạn.

Phần mềm trung gian của Wave

Bên trong tệp Wave lines.php, bạn sẽ thấy dòng sau:

Route::group(['middleware' => 'wave'], function () {
    Route::get('dashboard', '\Wave\Http\Controllers\[email protected]')->name('wave.dashboard');
});

Đây là router hiện tại duy nhất được bảo vệ bởiwave phần mềm trung gian. Cácwave phần mềm trung gian được sử dụng để bảo vệ các router chống lại những người dùng không còn đăng ký đang hoạt động hoặc không còn dùng thử. Bạn có thể bao gồm các tuyến ứng dụng của mình bên trong phần mềm trung gian này:

Route::group(['middleware' => 'wave'], function () {
    // Add your application routes here.
});

Bạn cũng có thể muốn bao gồm phần mềm trung gian này trong một tuyến duy nhất:

Route::get('awesome', '[email protected]')->middleware('wave');

Và bây giờ các tuyến ứng dụng của bạn sẽ được bảo vệ khỏi những người dùng không còn hoạt động là người dùng trả tiền.