Simple PHP Library for RESTful APIs
Go to file
PJ Dietz 9aab0d780e Router can provide middleware called only for matched routes. 2018-06-21 16:00:11 -04:00
docker Update Docker images and add dumb-init 2018-06-21 12:48:11 -04:00
docs Documentation proofreading 2018-03-13 13:23:15 -04:00
public Use alias instead of symlink for documentation on local site 2018-03-13 14:15:38 -04:00
src Router can provide middleware called only for matched routes. 2018-06-21 16:00:11 -04:00
test Router can provide middleware called only for matched routes. 2018-06-21 16:00:11 -04:00
.env Make local dev site port configurable 2018-06-21 12:48:11 -04:00
.gitattributes Add .gitattributes to remove non-essentials files from dist 2015-05-15 19:27:18 -04:00
.gitignore Add local development example site. 2018-03-12 15:05:19 -04:00
.travis.yml Update Travis to test using PHP 7.1 to meet dependency requirements for tests. 2017-08-03 14:09:40 -04:00
README.md Add local dev info to the README 2018-03-13 14:32:01 -04:00
composer.json Upgrade PHPUnit to v7 2018-06-21 10:20:33 -04:00
composer.lock Upgrade PHPUnit to v7 2018-06-21 10:20:33 -04:00
docker-compose.yml Make local dev site port configurable 2018-06-21 12:48:11 -04:00
phpunit.xml.dist Upgrade PHPUnit to v7 2018-06-21 10:20:33 -04:00

README.md

WellRESTed

Build Status Documentation Status SensioLabsInsight

WellRESTed is a library for creating RESTful Web services and websites in PHP.

Requirements

  • PHP 7.0

Install

Add an entry for "wellrested/wellrested" to your composer.json file's require property.

{
    "require": {
        "wellrested/wellrested": "~3.1"
    }
}

Documentation

See the documentation to get started.

Example

<?php

use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use WellRESTed\Message\Response;
use WellRESTed\Message\Stream;
use WellRESTed\Server;

// Create a handler using the PSR-15 RequestHandlerInterface
class HomePageHandler implements RequestHandlerInterface
{
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        // Create and return new Response object to return with status code,
        // headers, and body.
        $response = (new Response(200))
            ->withHeader('Content-type', 'text/html')
            ->withBody(new Stream('<h1>Hello, world!</h1>'));
        return $response;
    }
}

// -----------------------------------------------------------------------------

// Create a new server.
$server = new Server();

// Add a router to the server to map methods and endpoints to handlers.
$router = $server->createRouter();
$router->register('GET', '/', new HomePageHandler());
$server->add($router);

// Read the request from the client, dispatch a handler, and output.
$server->respond();

Development

Use Docker to run unit tests, manage Composer dependencies, and render a preview of the documentation site.

To get started, run:

docker-compose build
docker-compose run --rm php composer install

To run PHPUnit tests, use the php service:

docker-compose run --rm php phpunit

To generate documentation, use the docs service:

# Generate
docker-compose run --rm docs
# Clean
docker-compose run --rm docs make clean -C docs

To run a local playground site, use:

docker-compose up -d

The runs a site you can access at http://localhost:8080. You can use this site to browser the documentation or code coverage report.

Copyright © 2018 by PJ Dietz Licensed under the MIT license