mbvienasbaitas/strapi-laravel-client

Strapi Client wrapper for Laravel.

1.0.0 2023-01-23 11:25 UTC

This package is auto-updated.

Last update: 2024-04-23 14:23:24 UTC


README

Latest Version on Packagist Test Status Total Downloads

Laravel package to enable easier Strapi client management provided by mbvienasbaitas/strapi-php-client package.

Installation

To get started, simply require the project using Composer.
You will also need to install packages that "provide" psr/http-client-implementation and psr/http-factory-implementation. which is required by mbvienasbaitas/strapi-php-client

composer require mbvienasbaitas/strapi-laravel-client

Usage

Default client configuration

Default client can be configured via environment. Here is a list of available configuration options.

Environment variable Description
STRAPI_CLIENT Default client configuration to be used. Defaults to default
STRAPI_ENDPOINT Endpoint url, eg.: https://localhost:1337
STRAPI_TOKEN Bearer token used for authentication.

Default client using facade

use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest;
use VienasBaitas\Strapi\Client\Laravel\Facades\Strapi;

$collection = Strapi::collection('pages');

$response = $collection->index(IndexRequest::make());

Default client using injection

use VienasBaitas\Strapi\Client\Client;
use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest;

class BlogController
{
    public function index(Client $client)
    {
        $collection = $client->collection('pages');

        return $collection->index(IndexRequest::make());
    }
}

Custom client using facade

use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest;
use VienasBaitas\Strapi\Client\Laravel\Facades\Strapi;

$client = Strapi::client('custom');

$collection = $client->collection('pages');

$response = $collection->index(IndexRequest::make());

Custom client using injection

use VienasBaitas\Strapi\Client\Contracts\Requests\Collection\IndexRequest;
use VienasBaitas\Strapi\Client\Laravel\Contracts\Factory;

class BlogController
{
    public function index(Factory $factory)
    {
        $collection = $factory->client('custom')->collection('pages');

        return $collection->index(IndexRequest::make());
    }
}

Using custom client and request factory interfaces

Custom client and request factory resolved implementations could be bound using built in resolver functionality. Place snippets shown below in your ApplicationServiceProvider.

use VienasBaitas\Strapi\Client\Laravel\Strapi;

Strapi::resolveRequestFactoryUsing(function () {
    // return \Psr\Http\Client\ClientInterface implementation
});

Strapi::resolveRequestFactoryUsing(function () {
    // return \Psr\Http\Message\RequestFactoryInterface implementation
});

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

Alternatives

License

The MIT License (MIT). Please see License File for more information.