Laravel Responder adalah paket untuk membangun respons API, mengintegrasikan Fractal ke Laravel dan Lumen. Itu dapat mengubah data Anda menggunakan transformer, membuat dan membuat serialisasi respons sukses dan kesalahan, menangani pengecualian, dan membantu Anda menguji respons Anda.
Install package dengan composer
di root
project anda
composer require flugger/laravel-responder
Jika anda menggunakan Laravel 5 kebawah bisa menambahkan / mendaftarkan ke Provider Laravel di file config/app.php
seperti berikut :
Flugg\Responder\ResponderServiceProvider::class,
dan menambahkan facade di file config/app.php
'Responder' => Flugg\Responder\Facades\Responder::class, 'Transformation' => Flugg\Responder\Facades\Transformation::class,
Publish Package nya dengan cara publish vendor :
php artisan vendor:publish --provider="Flugg\Responder\ResponderServiceProvider"
Menggunakan Package ini bisa berbagai macam cara diantaranya inject
Responder Service dari package ini contohnya seperti ini :
... use Flugg\Responder\Responder; ... public function index(Responder $responder) { return $responder->success(); }
atau anda juga bisa menggunakan responder()
helper :
return responder()->success();
atau jika anda menginginkan response error bisa menggunakan helper seperti ini :
return responder()->error();
Untuk menggunakan metode facade bisa dilakukan seperti ini :
return Responder::success();
Untuk menggunakan Trait bisa seperti ini :
return $this->success();
Metode success
dan error
masing-masing mengembalikan SuccessResponseBuilder
dan ErrorResponseBuilder
, yang keduanya memperluas ResponseBuilder abstrak, memberi mereka perilaku umum. Mereka akan dikonversi ke JSON ketika dikembalikan dari pengontrol, tetapi Anda dapat secara eksplisit membuat instance Illuminate\Http\JsonResponse
dengan metode respons:
return responder()->success()->toArray();
atau jika response nya error maka akan seperti ini :
return responder()->error()->toArray();
Anda dapat melampirkan transformator ke respons dengan mengirimkan argumen kedua ke metode sukses. Misalnya, di bawah ini kami melampirkan transformer
penutup sederhana, mengubah daftar produk menjadi hanya menampilkan namanya:
return responder()->success(Product::all(), function ($product) { return ['name' => $product->name]; })->respond();
Anda juga dapat mengubah menggunakan kelas transformator khusus:
return responder()->success(Product::all(), ProductTransformer::class)->respond();
atau bisa juga seperti ini :
return responder()->success(Product::all(), new ProductTransformer)->respond();
dan untuk mendedikasikan Model ke salah satu Transformer tambahkan fungsi seperti ini di model anda :
... use Flugg\Responder\Contracts\Transformable; ... class Product extends Model implements Transformable {}
/** * Get a transformer for the class. * * @return \Flugg\Responder\Transformers\Transformer|string|callable */ public function transformer() { return ProductTransformer::class; }
Demikian artikel ini saya buat biar temen-temen lebih efisien dalam mendevelop Applikasi API di Laravel