innmind/rest-server

This package is abandoned and no longer maintained. No replacement package was suggested.

Library to easily expose REST APIs

8.1.0 2021-02-13 15:00 UTC

README

Build Status codecov Type Coverage

This library contains a set of tools to define, validate, extract and expose resources through http in a REST manner.

Installation

Via composer:

composer require innmind/rest-server

Usage

use function Innmind\Rest\Server\bootstrap;
use Innmind\Rest\Server\Gateway;
use Innmind\Immutable\Map;

$services = bootstrap(
    new Map('string', Gateway::class),
    require '/path/to/resources/mapping.php'
);

$services['routes']; // provides all the routes available for the definitions you provided

// action controllers
$services['controller']['create'];
$services['controller']['index'];
$services['controller']['get'];
$services['controller']['remove'];
$services['controller']['update'];
$services['controller']['link'];
$services['controller']['unlink'];
// controller to output the resource definition
$services['controller']['options'];
// controller to expose links to all the resources definitions
$services['controller']['capabilities'];

The gateways are the bridges between this component and your domain. The definition handling which resource is handled by which gateway is done in the resources mapping where a resource can only be managed by one gateway. Take a look at fixtures/mapping.php to understand how to define your resources.