JSKOS API implementation (server and client)

0.3.1 2017-10-18 08:30 UTC

This package is auto-updated.

Last update: 2024-04-11 16:56:36 UTC


Latest Version Software License Build Status Coverage Status Quality Score Total Downloads


Requires PHP 7.0 or PHP 7.1, package jskos, and any package listed as php-http/client-implementation.

Bugs and feature request are tracked on GitHub.


With composer

Install a php-http/client-implementation and the latest version of this package, e.g.:

composer require php-http/curl-client gbv/jskos-http

This will automatically create composer.json for your project (unless it already exists) and add jskos-http as dependency. Composer also generates vendor/autoload.php to get autoloading of all dependencies:

Usage and examples

See directory examples for example scripts and jskos-php-examples for an example application.


See class Client to query JSKOS API and get back Result objects.

use JSKOS\Client;

$client = new Client('');
$result = $client->query(['uri'=>$uri]);

if (count($result)) {

An optional Http\Client\HttpClient can be passed as second argument. Use this for instance to log all HTTP requests:

$handler = \GuzzleHttp\HandlerStack::create();
foreach(['{method} {uri}', '{code} - {res_body}'] as $format) {
			$logger, // e.g. Monolog\Logger
			new \GuzzleHttp\MessageFormatter($format)

$httpClient = \Http\Adapter\Guzzle6\Client::createWithConfig([
    'handler' => $handler,

$jskoClient = new Client('', $httpClient);


Class Server wraps a JSKOS Service with PSR-7 HTTP message interfaces so it can be used with your favorite PSR-7 framework. An example with Slim:

$server = new JSKOS\Server($service);

$app = new Slim\App();

$app->get('/api', function ($request) use ($server) {
    return $server->query($request);


But there is no need to use an additional framework to support simple HTTP GET requests:

use JSKOS;

$server = new Server($service);
$response = $server->queryService($_GET, $_SERVER['PATH_INFO'] ?? '');

Author and License

Jakob Voß

JSKOS-HTTP is licensed under the LGPL license - see for details.

See also

JSKOS is created as part of project coli-conc:

The current specification of JSKOS is available at