2017 © Pedro Peláez
 

library slim-json-api

Slim extension to implement fast JSON API's

image

entomb/slim-json-api

Slim extension to implement fast JSON API's

  • Sunday, April 30, 2017
  • by entomb
  • Repository
  • 26 Watchers
  • 279 Stars
  • 72,720 Installations
  • PHP
  • 5 Dependents
  • 0 Suggesters
  • 62 Forks
  • 11 Open issues
  • 11 Versions
  • 4 % Grown

The README.md

slim-jsonAPI

Latest Stable Version Total Downloads, (*1)

This is an extension to the SLIM framework to implement json API's with great ease., (*2)

Installation

Using composer you can add use this as your composer.json, (*3)

    {
        "require": {
            "slim/slim": "2.3.*",
            "entomb/slim-json-api": "dev-master"
        }
    }

Usage

To include the middleware and view you just have to load them using the default Slim way. Read more about Slim Here (https://github.com/codeguy/Slim#getting-started), (*4)

    require 'vendor/autoload.php';

    $app = new \Slim\Slim();

    $app->view(new \JsonApiView());
    $app->add(new \JsonApiMiddleware());

.htaccess sample

Here's an .htaccess sample for simple RESTful API's, (*5)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

example method

all your requests will be returning a JSON output. the usage will be $app->render( (int)$HTTP_CODE, (array)$DATA);, (*6)

example Code


$app->get('/', function() use ($app) { $app->render(200,array( 'msg' => 'welcome to my API!', )); });

example output

{
    "msg":"welcome to my API!",
    "error":false,
    "status":200
}

Errors

To display an error just set the error => true in your data array. All requests will have an error param that defaults to false., (*7)


$app->get('/user/:id', function($id) use ($app) { //your code here $app->render(404,array( 'error' => TRUE, 'msg' => 'user not found', )); });

```json { "msg":"user not found", "error":true, "status":404 }, (*8)


You can optionally throw exceptions, the middleware will catch all exceptions and display error messages. ```php $app->get('/user/:id', function($id) use ($app) { //your code here if(...){ throw new Exception("Something wrong with your request!"); } });

```json { "error": true, "msg": "ERROR: Something wrong with your request!", "status": 500 }, (*9)


## Embedding response data and metadata in separate containers It is possible to separate response metadata and business information in separate containers. #### To make it possible just init JsonApiView with containers names ```php require 'vendor/autoload.php'; $app = new \Slim\Slim(); $app->view(new \JsonApiView("data", "meta")); $app->add(new \JsonApiMiddleware());

Response

{
    "data":{
        "msg":"welcome to my API!"
    },
    "meta":{
        "error":false,
        "status":200
    }
}

routing specific requests to the API

If your site is using regular HTML responses and you just want to expose an API point on a specific route, you can use Slim router middlewares to define this., (*10)

    function APIrequest(){
        $app = \Slim\Slim::getInstance();
        $app->view(new \JsonApiView());
        $app->add(new \JsonApiMiddleware());
    }


    $app->get('/home',function() use($app){
        //regular html response
        $app->render("template.tpl");
    });

    $app->get('/api','APIrequest',function() use($app){
        //this request will have full json responses

        $app->render(200,array(
                'msg' => 'welcome to my API!',
            ));
    });

middleware

The middleware will set some static routes for default requests. if you dont want to use it, you can copy its content code into your bootstrap file., (*11)

IMPORTANT: remember to use $app->config('debug', false); or errors will still be printed in HTML, (*12)

The Versions

30/04 2017

dev-master

9999999-dev https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

api middleware json slim view

13/06 2016

1.2.3

1.2.3.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

MIT

The Requires

  • php >=5.3.0

 

api middleware json slim view

13/01 2016

1.2.2

1.2.2.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

13/01 2016

1.2.1

1.2.1.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

12/01 2016

1.2.0

1.2.0.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

08/01 2016

1.1.1

1.1.1.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

25/08 2014

1.1.0

1.1.0.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

19/03 2014

1.0.6

1.0.6.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

02/12 2013

1.0.4

1.0.4.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

27/09 2013

1.0.2

1.0.2.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view

17/05 2013

0.1

0.1.0.0 https://github.com/entomb/slim-json-api

Slim extension to implement fast JSON API's

  Sources   Download

GPL 3.0

The Requires

  • php >=5.3.0

 

api middleware json slim view