Luracast Restler & php: add support of custom format (e.g. image format )

Trabla: Luracast Restler & php: add support of custom format

Solving:

In this tutorial we will add new format - Image format into  Luracast Restler
- great framework for creating api. 

1. Create  file "ImageFormat.php" and put it into
.../vendor/restler/framework/Luracast/Restler/Format  folder

e.g. on my PC:
C:/xampp/htdocs/api/vendor/restler/framework/Luracast/Restler/Format

2. Open file  "ImageFormat.php" and paste code below + save:

<?php

namespace Luracast\Restler\Format;

/**
 * Description of ImageFormat
 *
 * @author Samurai Kit
 */



class ImageFormat extends Format{
    public function decode($data) {
        return $data;
    }

    public function encode($data, $humanReadable = false) {
        return $data;
    }

    const MIME = 'image/*';
}


3. Find file Scope.php  and add followind code
( File is located  .../vendor/restler/framework/Luracast/Restler/  directory  )

<?php
namespace Luracast\Restler;

/**
 * Scope resolution class, manages instantiation and acts as a dependency
 * injection container
 *
 * @category   Framework
 * @package    Restler
 * @author     R.Arul Kumaran <arul@luracast.com>
 * @copyright  2010 Luracast
 * @license    http://www.opensource.org/licenses/lgpl-license.php LGPL
 * @link       http://luracast.com/products/restler/
 * @version    3.0.0rc6
 */
class Scope
{
    public static $classAliases = array(

        //Core
        'Restler'            => 'Luracast\Restler\Restler',

        //Format classes
        'AmfFormat'          => 'Luracast\Restler\Format\AmfFormat',
        'JsFormat'           => 'Luracast\Restler\Format\JsFormat',
        'JsonFormat'         => 'Luracast\Restler\Format\JsonFormat',
        'HtmlFormat'         => 'Luracast\Restler\Format\HtmlFormat',
        'PlistFormat'        => 'Luracast\Restler\Format\PlistFormat',
        'UploadFormat'       => 'Luracast\Restler\Format\UploadFormat',
        'UrlEncodedFormat'   => 'Luracast\Restler\Format\UrlEncodedFormat',
        'XmlFormat'          => 'Luracast\Restler\Format\XmlFormat',
        'YamlFormat'         => 'Luracast\Restler\Format\YamlFormat',
        'CsvFormat'          => 'Luracast\Restler\Format\CsvFormat',
        'TsvFormat'          => 'Luracast\Restler\Format\TsvFormat',

        //Custom Format
       'ImageFormat'        => 'Luracast\Restler\Format\ImageFormat',

        //Filter classes
        'RateLimit'          => 'Luracast\Restler\Filter\RateLimit',

        //UI classes
        'Forms'              => 'Luracast\Restler\UI\Forms',
        'Nav'                => 'Luracast\Restler\UI\Nav',
        'Emmet'              => 'Luracast\Restler\UI\Emmet',
        'T'                  => 'Luracast\Restler\UI\Tags',

        //API classes
        'Resources'          => 'Luracast\Restler\Resources',
        'Explorer'           => 'Luracast\Restler\Explorer',

        //Cache classes
        'HumanReadableCache' => 'Luracast\Restler\HumanReadableCache',
        'ApcCache'           => 'Luracast\Restler\ApcCache',
        'MemcacheCache'      => 'Luracast\Restler\MemcacheCache',


3. Add new supported format in your index.php file
Example:

C:/xampp/htdocs/api/index.php

<?php

date_default_timezone_set('UTC');

require_once __DIR__ .'/vendor/autoload.php';

use Luracast\Restler\Restler;
use Luracast\Restler\Defaults;

$production_mode = false;
$r = new Restler( $production_mode );


$r->addAPIClass('Log');
$r->addAPIClass('Login');

$r->addAPIClass('Explorer');

$r->setSupportedFormats(
        'JsonFormat'
     , 'ImageFormat'
);


$r->handle();


No comments:

Post a Comment