nadar/yii-rest-client

A Yii Framework Component in order to work with the LUYA headless REST Client. The LUYA REST Client is an Active Record similar solution for REST Clients.

1.0.0 2020-09-25 06:14 UTC

This package is auto-updated.

Last update: 2024-11-29 06:22:12 UTC


README

A Yii Framework Component in order to work with the LUYA headless REST Client. The LUYA REST Client is an Active Record similar solution for APIs.

It works with Yii Framework out of the box, therefore those things are included:

  • Use fields in your requests
  • Use sort in your requests
  • Working with expand
  • Caching
  • CRUD (Create new records, Read records, Update records, Delete records) API operations
  • Similar to Yii Framework Active Query and Active Record

Tests Maintainability Test Coverage

Installation

Installation via composer

composer require nadar/yii-rest-client

Usage & Dokumentation

Configure your API Client:

'components' => [
    'api' => [
        'class' => 'Nadar\YiiRestClient\Api',
        'server' => 'https://myapi.com',
        'accessToken' => '...',
    ]
]

To see all LUYA Headless functions see the LUYA Headless Documentation

Now add your Rest Model (Active Endpoint), this represents the Model on the client side. It provides basic getter and setter methods same as Yii Framework.

class ApiCars extends \luya\headless\ActiveEdnpoint
{
    public $id;
    public $name;
    public $year;

    public function getEndpointName()
    {
        return '{{%cars}}';
    }
}

The above example assumes the full endpoint is https://myapi.com/cars.

Working with the Model to make CRUD operations like list, edit, save.

Foreach Data (Will make a GET request):

foreach (ApiCars::find()->all(Yii::$app->api->client)->getModels() as $car) {

    var_dump($car->name);
}

View One and Update the record (Will make a PUT request):

$car = ApiCars::viewOne(1, Yii::$app->api->client);
echo $car->name; // f.e BMW
$car->name = 'Mercedes';
$car->save(Yii::$app->api->client);

Add new entry (will make a POST request):

$car = new ApiCars();
$car->name = 'Honda';
$car->save(Yii::$app->api->client);

To see all LUYA Headless functions see the LUYA Headless Documentation