2017 © Pedro Peláez
 

library skeleton-package-api

Tigron Skeleton Restfull API functionality

image

tigron/skeleton-package-api

Tigron Skeleton Restfull API functionality

  • Friday, June 3, 2016
  • by tigron
  • Repository
  • 3 Watchers
  • 0 Stars
  • 3,945 Installations
  • HTML
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 1 Open issues
  • 2 Versions
  • 9 % Grown

The README.md

skeleton-package-api

Description

This library enables an API for a Skeleton project, (*1)

Installation

Installation via composer:, (*2)

composer require tigron/skeleton-package-api

Howto

Create an index module in your application that extends from Skeleton\Package\Api\Web\Module\Index, (*3)

<?php
/**
 * Module Index
 *
 * @author Christophe Gosiau <christophe@tigron.be>
 * @author Gerry Demaret <gerry@tigron.be>
 * @author David Vandemaele <david@tigron.be>
 */

class Web_Module_Index extends \Skeleton\Package\Api\Web\Module\Index {
}

This module will creates a user interface for the API. The user interface is based on docblocks in the call-modules, (*4)

Create a call-module, (*5)

<?php
/**
 * Module Index
 *
 * @author Christophe Gosiau <christophe@tigron.be>
 * @author Gerry Demaret <gerry@tigron.be>
 * @author David Vandemaele <david@tigron.be>
 */

class Web_Module_User extends \Skeleton\Package\Api\Web\Module\Call {

    /**
     * Get by id
     *
     * Get a user by his ID
     *
     * @access public
     * @param int $id
     * @return array $user
     */
    public function call_getById() {
        $user = User::get_by_id($_REQUEST['id']);
        return $user->get_info();
    }
}

Make sure every call method is prepended with 'call_'. Also make sure to the docblocks contains the correct variables. These will be available as $_REQUEST parameters, (*6)

Security

Each API request is checked for correct credentials. The API keys can be configured via:, (*7)

\Skeleton\Package\Api\Config::$api_keys = [ 'KEY1', 'KEY2' ];

Each API call now needs to contain a valid API KEY in its GET-parameters, (*8)

http://api.myapplication.tld/user?call=getById&id=1&api_key=KEY1

To disable authentication, set the Config-value to false, (*9)

\Skeleton\Package\Api\Config::$api_keys = false;

For more control, each call will execute a 'secure-method' before proceeding. If your application needs more fine-grained user permissions, you can implement them here., (*10)

    /**
     * Secure
     *
     * @access public
     * @return bool $secured
     */
    public function secure() {
        $api_key = $_REQUEST['api_key'];
        // Only keys that start with letter A are allowed
        if ($api_key[0] == 'A') {
            return true;
        }
        return false;
    }

The Versions

03/06 2016

dev-master

9999999-dev

Tigron Skeleton Restfull API functionality

  Sources   Download

MIT

The Requires

 

by Tigron BVBA

03/06 2016

v0.1.0

0.1.0.0

Tigron Skeleton Restfull API functionality

  Sources   Download

MIT

The Requires

 

by Tigron BVBA