Base components for JSON REST API for Nette applications
namespace: Clevis\RestApi
###ApiRoute Route for REST requests
usage:
// for POST only
$router[] = new RestRoute('/api/login', 'User:login', RestRoute::METHOD_POST);
// for SSL secured request
$router[] = new RestRoute('/api/login', 'User:login', RestRoute::METHOD_POST | RestRoute::SECURE);
// for all methods
$route = new RestRoute('/api/login', 'User:', RestRoute::RESTFUL);
$router[] = $route;
// optional - set HTTP method to presenter action translation table. (these are defults)
$route->setRestDictionary(array(
'GET' => 'get',
'POST' => 'post',
'PUT' => 'put',
'PATCH' => 'patch',
'DELETE' => 'delete',
))
###ApiPresenter Simplified presenter for JSON requsts and responses
Presenter lifecycle:
- calls
startup()
- you can configure presenter internals here
- SSL validation
- it is recomended to always use SSL for API
- set
$checkSsl
toFALSE
for testing without SSL (by default is on)
- API version validation based on
X-Api-Version
header
- set
$minApiVersion
and$minApiVersion
to configure
- optional user authentication based on
X-Api-Key
header
- set
$checkAccess
toFALSE
to turn autenication off (by default is on)
- calls
actionXyz()
- remember ApiPresenter does not use methods named
renderXyz
as Nette presenters do (it does not render anything)
- filtering of response data
- all
DateTime
values are converted to string
- returns the response
####returning results: You can either:
- write data to the
$payload
property - or use method sendSuccessResponse($data, $responseCode)
- or sendErrorReponse($responseCode, $message) for errors
###ApiResponse Sends response data to client