12/08/2018, 16:30

Xây dựng API trên framework FuelPHP

Mình xin phép được vào thẳng vấn đề, những thứ như FuelPHP là gì mình xin phép không đề cập I. Chuẩn bị Cài đặt oil (thằng này na ná như artisan trong laravel vậy, giúp khởi động server ảo, tạo và chạy migrate, controller): curl https://get.fuelphp.com/oil | sh Tải framework: oil create ...

Mình xin phép được vào thẳng vấn đề, những thứ như FuelPHP là gì mình xin phép không đề cập

I. Chuẩn bị

  • Cài đặt oil (thằng này na ná như artisan trong laravel vậy, giúp khởi động server ảo, tạo và chạy migrate, controller): curl https://get.fuelphp.com/oil | sh
  • Tải framework: oil create blog
  • Chạy php oil refine install.
  • Cài đặt postman để test

II. Tiến hành tạo controller

Điểm sơ qua tý nhỉ, thằng FuelPHP này nó có 4 loại controller:

  • BaseController (hay dùng cho các tác vụ đơn giản get, post) .
  • TemplateController.
  • RestController (hỗ trợ REST để xây dựng API) .
  • HybridController (lai giữa RestController và TempaleController). Trong bài viết này chúng ta tập trung vào thằng RestController. Tạo một RestController ta làm như sau: php oil g controller example --extends=Controller_Rest -f trông nó na ná như sau:
<?php

class Controller_Example extends Controller_Rest
{
    
}

Chúng ta thấy ở đây Controller_Example đã kế thừa từ Controller_Rest, từ đó ta sẽ đi định nghĩa các phương thức trong đây. Ví dụ giờ mình cần lấy ra một danh sách các bài Post. Ok! Giờ chúng ta tạo model Póst: php oil g model Post title:varchar[50] body:text Chúng ta tạo ra phương thức get_list như sau:

<?php

class Controller_Example extends Controller_Rest
{
    protected $format = 'json';
    
    public function get_list()
    {
        $posts = Model_Post::find('all');

        $this->response([
            $posts
        ]);
    }
}

Mặc định định dạng trả về sẽ là kiểu xml, nên nếu chúng ta muốn api trả về kiểu json thì chúng ta thêm protected $format = 'json'; để định dạng kiểu trả về. Các bạn chạy trên postman sẽ thu được kết quả như sau: Có cái khá hay của fuel, khi các bạn viết một function nào đó quy tắc sẽ là verb_nameAction (trong đó verb là 1 trong 5 phương thức REST) ví dụ ở đây để gọi tới được action get_list thì trên Postman ta sẽ dùng phương thức gọi tới action list của controller Example (mình đánh số 1 ấy!) kết quả trả về kiểu json như chỗ đánh số 2             </div>
            
            <div class=

0