Site logo
Authors
  • avatar Nguyễn Đức Xinh
    Name
    Nguyễn Đức Xinh
    Twitter
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ề. Laravel API

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.

Các nguồn tài liệu