Với các bạn làm dự án mà yêu cầu chạy trên môi trường web và app …, để đồng bộ hóa dữ liệu thì chúng ta sẽ cần xây dựng Api cho dự án của mình. Bài viết này mình sẽ hướng dẫn mọi người xây dựng API đúng chuẩn RESTful với framework Laravel version 5.7, vì sử dụng framework Laravel nên mọi người nên tìm hiểu cơ bản về laravel trước khi đọc bài viết.

 

Laravel api

Api laravel

RESTful hoạt động dựa trên http với hoạt động request từ xa đến server để thực hiện lấy, thêm,xóa , sửa dữ liệu. Với Restful, dạng dữ liệu trao đổi giữa client/server là JSON hoặc XML, nhưng JSON thường được dùng hơn. Để triển khai Restful API trong Laravel, bạn cần dùng một công cụ seo để test, đó là Postman.

Khi request đến một API server, Bạn sẽ nhận được status code trả về, giá trị của status cho biết kết quả của request. Sau đây là một số giá trị status thường gặp:

  • 200 OK – thành công, dùng cho các phương thức GET, PUT, PATCH, DELETE.
  • 201 Created – Trả về khi resouce được tạo thành công.204 No Content – Trả về khi resource xoá thành công. 304 Not Modified – Client có thể sử dụng dữ liệu cache.
  • 400 Bad Request – Request không hợp lệ
  • 401 Unauthorized – Request cần phải có auth.
  • 403 Forbidden – bị từ chối không cho phép.
  • 404 Not Found – Không tìm thấy resource từ URI
  • 405 Method Not Allowed – Phương thức bị cấm với user hiện tại.
  • 429 Too Many Requests – Request bị từ chối do bị giới hạn

Sau đây là những việc bạn cần thực hiện khi muốn triển khai Restful API trong Laravel cho mục đích quản trị dữ liệu từ xa:

  • Tạo table để chứa dữ liệu cho thiết kế web nếu chưa tạo (Product)
  • Tạo model (Product) và khai báo các field trong model
  • Tạo Eloquent resource để transform data
  • Tạo Controller resource chứa các action CRUD resource
  • Tạo các route api dẫn vào các action trong controller
  • Viết code cho chức năng thêm resource và test
  • Viết code cho chức năng sửa resource và test
  • Viết code cho hiện danh sách resource và test
  • Viết code xóa 1 resource và test
  • Viết code hiện chi tiết 1 resource và test1

Api laravel

Laravel authentication api

Tạo table trong database để chứa dữ liệu laravel transaction (product)

  • Chạy lệnh sau để tạo migration:
    php artisan make:migration create_products_table
  • Khai báo các field trong file migration mới tạo
public function up() {
   Schema::create('products', function (Blueprint $table) {
     $table->id();
     $table->string('name');
     $table->integer('price');
     $table->timestamps();
   });
}

Sau khi tạo table, bạn cần tạo model Eloquent để tương tác với table:

  • Chạy lệnh sau để tạo model:
    php artisan make:model Product
  • Khai báo các field trong file model mới tạo:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Product extends Model {
   use HasFactory;
   protected $fillable = ['name', 'price'];
}

Tạo route là việc quan trọng khi tạo Restful API trong Laravel. Mục đích của tạo route là để có các path đưa user đến các action trong controller đã tạo ở trên. Để tạo các route api, bạn mở file routes/api.php lên để định nghĩa nhé.

Khi user thực hiện request đến các route này, phải có thêm prefix là api, (có thể đổi trong app\Providers\RouteServiceProvider.php)

Định nghĩa route trong api.php có 2 cách:

Cách 1: Khai báo route với 1 method cụ thể (get, post), route (sp), action (index, store). Ví dụ:

use App\Http\Controllers\ProductController;
Route::get('sp', [ProductController::class, 'index']);
Route::post('sp', [ProductController::class, 'store']);

Cách 2: Khai báo route với lệnh Route::resource để dùng chung route cho các method get, post, put, delete dẫn vào các action của controller
Route::resource(‘products’, ProductController::class);

Lệnh trên tạo ra các route dẫn vào các action như sau:

Laravel authentication api

 

5/5 - (1 bình chọn)

Laravel api - Xây dựng Authentication api

Lê Trương Tấn Lộc (Website: sieutocviet.page)

Với hơn 3 năm kinh nghiệm Python / PHP / CSS / JS / WORDPRESS, 5 năm kinh nghiệm trong quản trị website tư vấn giải pháp SEO từ khóa, Marketing tối ưu nhất cho doanh nghiệp. Chuyên viên tư vấn sản phẩm: Hosting, Email doanh nghiệp, VPS, App web design.

Hiện đang là trưởng phòng kinh doanh tại Siêu Tốc Việt.