Nhảy tới nội dung
Phiên bản: 7.1.0

Create Api

Để tạo api mới bạn tạo một plugin mới ví dụ api-blogs

Trong plugin api-blogs bạn sẽ tạo các file và thư mục có cấu trúc:

  • folder controllers - chứa danh sách các controller
  • file routes/api.php - chứa danh sách route của plugin
  • folder middleware - chứa danh sách middleware của plugin
  • file api.php - file main nhúng các file cần thiết
  • file plugin.json - file khai báo thông tin plugin

Thêm routes

Mở file routes/api.php và thêm vào các route:

Route::prefix('api/blog')->name('api.blogs.')->middleware(AuthApi::class)->group(function () {
Route::get('/', 'BlogApi@index', ['namespace' => 'views/plugins/api-blogs/controllers'])->name('index');
Route::post('/{id}', 'BlogApi@show', ['namespace' => 'views/plugins/api-blogs/controllers'])->name('show');
Route::put('/{id}', 'BlogApi@update', ['namespace' => 'views/plugins/api-blogs/controllers'])->name('update');
Route::delete('/{id}', 'BlogApi@delete', ['namespace' => 'views/plugins/api-blogs/controllers'])->name('delete');
});

Bạn thấy route đang dùng một middleware có tên là AuthApi::class, middleware này có nhiệm vụ kiểm tra xem khi user gửi dữ liệu từ client lên server có đáp ứng authentication jwt không, đối với các các api không cần kiểm tra authentication bạn cần gở middleware này khỏi route đó.

File route như trên sẽ tạo cho bạn các api như sau:

GET {{BASE_URL}}/api/blog
POST {{BASE_URL}}/api/blog/${id}
PUT {{BASE_URL}}/api/blog/${id}
DELETE {{BASE_URL}}/api/blog/${id}

Tạo Controller

Tạo một controller controllers/BlogApi.php để xây dựng các logic.

<?php
use SkillDo\Http\Rest;
use SkillDo\Http\Request;

class BlogApi extends Rest
{
public function __construct()
{
parent::__construct();
}

/*
* Lấy danh sách blog
*/
public function index(Request $request)
{
return response()->success('success message');
}

/*
* Lấy thông tin chi tiết của blog
*/
public function show(Request $request, $id)
{
return response()->success('success message');
}

/*
* Cập nhật một blog
*/
public function update(Request $request, $id)
{
return response()->success('success message');
}

/*
* Xóa một blog
*/
public function delete(Request $request, $id)
{
return response()->success('success message');
}
}