- Authors
- Name
- Nguyễn Đức Xinh
- Published on
- Published on
Hướng dẫn cài đặt API trong Laravel
Cài đặt API Routes
Laravel 11 cung cấp một lệnh giúp bạn cài đặt API routes một cách nhanh chóng
php artisan install:api
Lệnh này sẽ tự động thực hiện các công việc cần thiết sau:
Cài Đặt Sanctum
Để cấu hình API Authentication thông qua token, chúng ta sẽ sử dụng package Sanctum. Để cài đặt Sanctum, chạy lệnh sau:
composer require laravel/sanctum
Sanctum là một package đơn giản giúp xác thực API thông qua token mà không cần sử dụng session.
Publish file cấu hình của Sanctum
Sau khi cài đặt Sanctum, bạn cần publish file cấu hình của Sanctum bằng lệnh sau:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
Lệnh này sẽ tạo file cấu hình sanctum.php
trong thư mục config
.
Thêm API Routes vào bootstrap/app.php
Trong file bootstrap/app.php
, thêm đoạn cấu hình sau để load API routes:
->withRouting(
web: __DIR__.'/../routes/web.php',
+ api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
Thêm File routes/api.php
Tạo một route mới trong file routes/api.php
:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:sanctum');
Thêm migration cho Sanctum
Tạo migration để tạo bảng lưu trữ các token trong cơ sở dữ liệu. Tạo file migration tại database/migrations/2024_12_01_022309_create_personal_access_tokens_table.php
với nội dung như sau:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('personal_access_tokens', function (Blueprint $table) {
$table->id();
$table->morphs('tokenable');
$table->string('name');
$table->string('token', 64)->unique();
$table->text('abilities')->nullable();
$table->timestamp('last_used_at')->nullable();
$table->timestamp('expires_at')->nullable();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('personal_access_tokens');
}
}
Chạy Migrations
Chạy migration để tạo các bảng cần thiết cho Sanctum:
php artisan migrate
Lệnh này sẽ tạo bảng personal_access_tokens
để lưu trữ thông tin các token.
Thêm API Mới
Sau khi hoàn tất các bước cấu hình cơ bản, bạn có thể bắt đầu thêm các API mới. Ví dụ, thêm một route mới trong file routes/api.php
như sau:
<?php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/greeting', function (Request $request) {
return response()->json([
'message' => 'Hello World!'
]);
});
Kiểm tra API
Sau khi thêm API, bạn có thể kiểm tra xem các routes đã được đăng ký thành công chưa bằng lệnh:
php artisan route:list
Kết quả sẽ hiển thị các routes đã được đăng ký trong hệ thống. Ví dụ:
GET|HEAD / ...............................
GET|HEAD api/greeting ....................
GET|HEAD api/user ........................
GET|HEAD sanctum/csrf-cookie ........... sanctum.csrf-cookie › Laravel\Sanctum › CsrfCookieController@show
GET|HEAD storage/{path} .................. storage.local
GET|HEAD up ..............................
Khi đã có API mới, bạn có thể truy cập vào http://127.0.0.1:8000/api/greeting trên trình duyệt để kiểm tra kết quả trả về.
Kết luận
Với các bước trên, bạn đã thiết lập thành công một API cơ bản sử dụng Laravel Sanctum. Đây là bước khởi đầu để xây dựng các hệ thống xác thực API mạnh mẽ trong ứng dụng Laravel của bạn.