Laravel Responder Package Laravel Untuk Api Response

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.

Installasi Package

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"

Pemakaian Package

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();

Menggunakan Facade Langsung

Untuk menggunakan metode facade bisa dilakukan seperti ini :

return Responder::success();

Menggunakan MakeResponses Trait

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();

Menggunakan Transformer Data

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