PHP Classes

PHP JSON API Server: Handle REST API requests with functions in scripts

Recommend this page to a friend!
  Info   Documentation   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
StarStarStarStar 70%Total: 670 All time: 4,827 This week: 50Up
Version License PHP version Categories
server 1.0.0BSD License5PHP 5, Web services
Description 

Author

This package can handle REST API requests with functions in scripts.

It registers functions from scripts present in a given directory to handle API requests to function calls mentioned in annotation comments.

The responses of the requests are returned in JSON format.

The package also comes with JavaScript client code to simplify calls done to API servers using this package.

Innovation Award
PHP Programming Innovation award nominee
February 2017
Number 5


Prize: One ebook of choice by Packt
Nowadays PHP is used to implement APIs that serve mainly mobile applications. Implementing an API consists mainly of defining how PHP code will handle requests for different URL endpoints.

This package makes the process as simple as defining as specifying a directory that contains scripts for handling requests for each of the supported API endpoints.

Each endpoint script will be loaded and a function is called to handle the endpoint request and returns the response data to be returned to the calling client in JSON format.

The package also comes with a simple JavaScript library to make calls to an API implemented with this package.

Manuel Lemos
Picture of Cesar D. Rodas
  Performance   Level  
Innovation award
Innovation award
Nominee: 25x

Winner: 5x

 

Documentation

JSONful

JSONful is a framework which helps creating API servers.

Features

  1. Ease of use * It exposes regular PHP functions to the API, making it easy to integrate with any other framework and existing code. * It is easy to make cross domain requests (`$server['public'] = true;`) * The javascript client works out of the box and it's optimized for performance * The client concatenates many requests and sending it in a single HTTP request. * It has no dependency, and it can be used with WebPack or directly.

Installation

composer require jsonful/server

Usage

api.php

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

$server new JSONful\Server(__DIR__ . '/apps');
$server->run();

apps/prime.php

/ @API("prime") */
function is_prime($number)
{
    if ($number <= 0) {
        return false;
    }
    $middle = ceil($number/2);
    for ($i = 2; $i <= $middle; ++$i) {
        if ($number % $i === 0) {
            return false;
        }
    }
    return true;
}

/ @API("ping") */
function ping() {
    return ['pong' => time()];
}

client.js

var client = new JSONful("https://api.myapp.net/");

client.exec("ping", function(err, response) {
  console.log(response); // {"pong": xxxx}
}
client.exec("prime", 99).then(function(response) {
  console.error(response); // false
});

  Files folder image Files (32)  
File Role Description
Files folder imagesrc (1 directory)
Files folder imagetests (3 files, 2 directories)
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file phpunit.xml Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads Download Rankings  
 100%
Total:670
This week:0
All time:4,827
This week:50Up
 User Ratings  
 
 All time
Utility:89%StarStarStarStarStar
Consistency:89%StarStarStarStarStar
Documentation:82%StarStarStarStarStar
Examples:-
Tests:85%StarStarStarStarStar
Videos:-
Overall:70%StarStarStarStar
Rank:264