WellRESTed ========== [![Build Status](https://travis-ci.org/pjdietz/wellrested.svg?branch=master)](https://travis-ci.org/pjdietz/wellrested) WellRESTed is a micro-framework for creating RESTful APIs in PHP. It provides a lightweight yet powerful routing system and classes to make working with HTTP requests and responses clean and easy. Requirements ------------ - PHP 5.3 - [PHP cURL](http://php.net/manual/en/book.curl.php) for making requests with the [`Client`](src/pjdietz/WellRESTed/Client.php) class (Optional) Install ------- Add an entry for "pjdietz/wellrested" to your composer.json file's `require` property. If you are not already using Composer, create a file in your project called "composer.json" with the following content: ```json { "require": { "pjdietz/wellrested": "~2.3" } } ``` Use Composer to download and install WellRESTed. Run these commands from the directory containing the **composer.json** file. ```bash $ curl -s https://getcomposer.org/installer | php $ php composer.phar install ``` You can now use WellRESTed by including the `vendor/autoload.php` file generated by Composer. Overview -------- WellRESTed's primary goal is to facilitate mapping of URIs to classes that will provide or accept representations. To do this, create a [`Router`](src/pjdietz/WellRESTed/Router.php) instance and load it up with some routes. ```php use pjdietz\WellRESTed\Response; use pjdietz\WellRESTed\Router; require_once "vendor/autoload.php"; // Create a new router. $router = new Router(); // Populate the router with routes. $router->add( ["/", "\\MyApi\\RootHandler"], ["/cats/", "\\MyApi\\CatHandler"], ["/dogs/*", "\\MyApi\\DogHandler"], ["/guinea-pigs/{id}", "\\MyApi\\GuineaPigHandler"], ["~/hamsters/([0-9]+)~", "\\MyApi\\HamsterHandler"] ); // Output a response based on the request sent to the server. $router->respond(); ``` Documentation ------------- See [the documentation](http://wellrested.readthedocs.org/en/stable/) to get started. Copyright and License --------------------- Copyright © 2015 by PJ Dietz Licensed under the [MIT license](http://opensource.org/licenses/MIT)