luyadev / luya-headless
LUYA headless API client
Installs: 21 212
Dependents: 3
Suggesters: 0
Security: 0
Stars: 10
Watchers: 4
Forks: 2
Open Issues: 0
Type:luya-core
Requires
- curl/curl: ^2.0
- luyadev/yii-helpers: ^1.4
- psr/simple-cache: ^1.0
Requires (Dev)
Suggests
- symfony/cache: A very fast PSR-16 caching library easy to setup for caching API responses.
README
LUYA Headless Client
A client library to access content from the LUYA APIs (or any other REST API).
Installation
Add the LUYA headless client library to your composer.json:
composer require luyadev/luya-headless
Intro
Quick intro about how to use the headless library with a custom Endpoint: Create the Api Class (this very similar to Active Record pattern):
class ApiCars extends \luya\headless\ActiveEdnpoint { public $id; public $name; public $year; public function getEndpointName() { return '{{api-cars}}'; } }
With the new ApiCars class you can now insert, update or fetch data:
use luya\headless\Client; // build client object with token and server infos $client = new Client('API_TOKEN', 'http://localhost/luya-kickstarter/public_html'); // create new value $car = new ApiCars(); $car->name = 'BMW'; $car->year = 2019; $car->save($client); // find a given user by its ID $car = ApiCars::viewOne(1, $client); echo $car->name; // BMW echo $car->year; // 2019 // update an existing value $car->year = '2018'; $car->save($client); // iterate all cars $users = ApiCars::find()->setSort(['id' => SORT_ASC])->all($client); foreach ($users->getModels() as $car) { echo $car->name; }
Documentation
See the full Documentation in order to see how to make put, delete or post request, handle pagination or access the cms blocks.
Development and Contribution
- PSR Naming convention: https://www.php-fig.org/bylaws/psr-naming-conventions/
- Cache component require: https://www.php-fig.org/psr/psr-16/ (example implementation, use: https://github.com/symfony/cache
new FilesystemCache('', 0, 'path/to/cache/folder');
) - Unit tests
composer install
and run./vendor/bin/phpunit tests