2017 © Pedro Peláez
 

library rest

Base library to create an API sdk for CCT Microservices

image

cct-marketing/rest

Base library to create an API sdk for CCT Microservices

  • Monday, April 9, 2018
  • by cct
  • Repository
  • 2 Watchers
  • 0 Stars
  • 100 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 7 Versions
  • 669 % Grown

The README.md

REST API Component

Scrutinizer Code Quality Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

A REST(Representational State Transfer) library to help rapidly develop RESTful web service SDKs. Supports serialization of response and request to objects., (*2)

Installation

composer require cct-marketing/rest

Serilizer Libraries (Optional)

If no serializer is install all responses will be returned as an array, (*3)

Recommended JMS Serialiser, (*4)

composer require jms/serializer

Alternative Symfony Serialiser, (*5)

composer require symfony/serializer
composer require symfony/property-access

Usage

To use the library you just need to extend the AbstractClient and AbstractSerializerRequest or AbstractRequest classes, (*6)

use CCT\Component\Rest\Config;
use CCT\Component\Rest\Http\Definition\RequestHeaders;
use CCT\Component\Rest\Http\Request;
use CCT\Component\Rest\Serializer\Context\Context;

class MyRequest extends Request
{
    protected function setUp()
    {
        $this->config->set(Config::URI_PREFIX, '/test/');
    }

    public function apiCall(QueryParams $queryParams = null)
    {
        $this->config->set('serialization_context', Context::create()->setGroups(['read']));

        $headers = RequestHeaders::create(
            [
                'Accept' => 'application/json',
                'X-Requested-With' => 'XMLHttpRequest',
            ]
        );

        $this->setHeaders($headers);

        return parent::requestGet($this->getUri(), $queryParams);
    }
}
use CCT\Component\Rest\AbstractClient;
use CCT\Component\Rest\Config;

class RESTClient extends AbstractClient
{
    /**
     * @return ScrapeRequest
     */
    public function myAPI(): MyRequest
    {
        $config = clone $this->config;
        $modelClass = TestModel::class;

        $serializer = $this->getBuiltSerializer($config);
        if ($this->shouldUseDefaultResponseTransformers() && null !== $serializer) {
            $this->applyDefaultResponseTransformers($config, $serializer, $modelClass);
        }

        return $this->createRequestInstance(TestRequest::class, $config, null);
    }
}

To run:, (*7)

$config = new \CCT\Component\Rest\Config([
    \CCT\Component\Rest\Config::ENDPOINT => 'https://api.endpoint.com/',
    \CCT\Component\Rest\Config::DEBUG => true,
]);

/**
 * Send Request
 */
$client = new Client($config);
$query = new QueryParams();
$query->set('message', 'hello');
$response = $client->myAPI()->apiCall($query);

var_dump($response->getData());

The Versions

09/04 2018
05/04 2018
15/03 2018

v1.0.0-alpha.2

1.0.0.0-alpha2

Base library to create an API sdk for CCT Microservices

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jorge Vahldick

14/03 2018

v1.0.0-alpha.1

1.0.0.0-alpha1

Base library to create an API sdk for CCT Microservices

  Sources   Download

MIT

The Requires

 

The Development Requires

by Jorge Vahldick