restServer
rest services made easy
restServer provides
- a PSR HTTP message rest server
- builtin ip, cors, auth, serializing and decoding mgnt
- API for your application
Install
To install with composer:
composer require kigkonsult/restserver
Requires PHP 5.6, 7.*
Usage
Example usage:
<?php
require "/path/to/vendor/autoload.php";
// Implement an application rest service operation entry
// (or any callable with the same interface)
$callback = function(
ServerRequestInterface $request,
ResponseInterface $response
) {
return $response->withRawBody( [ "Hello" => "world" ] );
};
// Set up the rest service definition (method, uri and callback)
$restGetServiceDef = [
RestServer::METHOD => RequestMethodHandler::METHOD_GET,
RestServer::URI => "/",
RestServer::CALLBACK => $callback
];
// Attach the service definition(s) and fire of the server
RestServer::factory()->attachRestService( $restGetServiceDef )->run();
More example usage:
<?php
require '/path/to/vendor/autoload.php';
$RestServer = new RestServer();
$attachRestServiceCallback = $RestServer->getAttachRestServiceCallback();
class ApplicationClass2
{
public function registerAsRestService(
$attachRestServiceCallback
) {
$attachRestServiceCallback(
RequestMethodHandler::METHOD_GET,
'/',
[$this, 'action']
);
}
public function action(
ServerRequestInterface $request,
ResponseInterface $response
) {
return $response->withRawBody( ['msg' => 'Hello world'] );
}
}
$ApplicationClass2 = new ApplicationClass2();
$ApplicationClass2->registerAsRestService( $attachRestServiceCallback );
$RestServer->run();
Rest service definition
You have to implement one or more rest service entries for your application logic.
Each entry with one or more http request methods and a (single) uri (ex "/"),
form a service definition.
The service definitions, attached to restServer, are interfaces to your application logic.
Handlers
restServer have builtin handlers managing IPnumber validation, Cross-Origin Resource Sharing,
authentication, messages serializing and en-/decoding.
As well as rest service definitions, you can attach custom
request message handler(s), invoked before any operation callback.
Also a custom (single) final handler can be attached, invoked after response is returned.
Documentation
In the restServer package docs folder are found
- summary and supplementary documentation
- demo applications and service definitions
- demo handlers
- more examples
For restServer issues, use github issues.
Due to the restServer development status (ver 0.9.123), review reports are appreciated!
Credits and base software information
Built status
Dev 0.9.123
Download
Click to get restServer
from github
- at packagist
|