Створіть готові до виробництва API в Laravel за допомогою Tyro

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Хочете швидко створити безпечні API на Laravel? Ознайомтеся з пакетом Tyro, який пропонує просту установку та потужні можливості для управління ролями і привілеями!

Tyro — це пакет API для створення готових до використання API в Laravel. Він має нульову конфігурацію з автентифікацією, авторизацією, управлінням привілеями, більше ніж 40 командами Artisan та перевіреною безпекою. Завдяки цьому пакету ви можете швидко розробляти безпечні API в Laravel.

Користуючись вбудованими ролями та привілеями Tyro, ви можете захистити маршрути за допомогою медіаторів roles, privilege та privileges:

use Illuminate\Support\Facades\Route;
 
// Потрібна автентифікація
Route::middleware(['auth:sanctum'])
    ->get('/profile', ProfileController::class);
 
// Потрібна конкретна роль
Route::middleware(['auth:sanctum', 'role:admin'])
    ->get('/admin/dashboard', AdminDashboardController::class);
 
// Дозволити будь-яку з кількох ролей
Route::middleware(['auth:sanctum', 'roles:admin,editor'])
    ->post('/articles', ArticleController::class);
 
// Потрібне конкретне привілеї
Route::middleware(['auth:sanctum', 'privilege:reports.run'])
    ->get('/reports', ReportController::class);
 
// Дозволити будь-яке з кількох привілеїв
Route::middleware(['auth:sanctum', 'privileges:billing.view,reports.run'])
    ->get('/analytics', AnalyticsController::class);

Також ви можете захищати API-маршрути, поєднуючи ролі та привілеї, що називається abilities:

// Потрібні ВСІ можливості (ролі та/або привілеї)
Route::middleware(['auth:sanctum', 'ability:admin,reports.run'])
    ->post('/reports/export', ReportExportController::class);
 
// Дозволити БУДЬ-ЯКУ можливість
Route::middleware(['auth:sanctum', 'abilities:admin,super-admin,reports.run'])
    ->get('/reports/advanced', AdvancedReportController::class);

Ось приклад входу в систему та отримання API-токена одразу після установки Tyro:

curl -X POST http://tyro-demo.test/api/login \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"email":"admin@tyro.project","password":"tyro"}'
{
    "error": 0,
    "id": 1,
    "name": "Tyro Admin",
    "token": "1|mNYqXI9AfPZw1bppwc3WK1F8WSHNAOnAYqV8RR0Oaa1644f7"
}
 
# Використання токена
curl http://tyro-demo.test/api/me \
  -H "Authorization: Bearer 1|mNYqXI9AfPZw1bppwc3WK1F8WSHNAOnAYqV8RR0Oaa1644f7"
{
    "id": 1,
    "name": "Tyro Admin",
    "email": "admin@tyro.project",
    "email_verified_at": null,
    "created_at": "2025-11-27T02:46:33.000000Z",
    "updated_at": "2025-11-27T02:46:33.000000Z",
    "suspended_at": null,
    "suspension_reason": null
}

# Основні функції

👨‍💻 Код доступний на GitHub: hasinhayder/tyro

Популярні

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Nuxt 3 + Laravel Sanctum: Просте та надійне рішення для автентифікації вашого SPA та API

У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом