JSON API Server
Enm\JsonApi\Server\JsonApiServer
:
Method |
Return Type |
Description |
|
addHandler(string $type, RequestHandlerInterface $handler) |
void |
Adds a request handler |
|
createRequestBody(?string $requestBody) |
DocumentInterface |
null |
Creates a document from the given string |
handleRequest(RequestInterface $request) |
ResponseInterface |
Handles a request to generate a response |
|
createResponseBody(ResponseInterface $response) |
string |
Creates the (http) response body for a given json api response |
|
handleException(\Throwable $throwable, bool $debug = false) |
ResponseInterface |
Creates a response for an exception |
|
Table Of Contents
- Endpoints
- Usage
Endpoints
HTTP-Method |
URL-Path (without prefix) |
Server Action |
GET |
/{type} |
The server creates a fetch request and calls method “findResources” of the request handler. |
GET |
/{type}/{id} |
The server creates a fetch request and calls method “findResource” of the request handler. |
GET |
/{type}/{id}/relationships/{relationshipName} |
The server creates a fetch request and calls method “findRelationship” of the request handler. |
GET |
/{type}/{id}/{relationshipName} |
The server creates a fetch request and calls method “findRelationship” of the request handler. |
POST |
/{type} |
The server creates a save request and calls method “saveResource” of the request handler. |
PATCH |
/{type}/{id} |
The server creates a save request and calls method “saveResource” of the request handler. |
DELETE |
/{type}/{id} |
The server creates a simple JSON API request and calls method “deleteResource” of the request handler. |
POST |
/{type}/{id}/relationships/{relationshipName} |
The server creates a relationship modification request and calls method “modifyResource” of the request handler. |
PATCH |
/{type}/{id}/relationships/{relationshipName} |
The server creates a relationship modification request and calls method “modifyResource” of the request handler. |
DELETE |
/{type}/{id}/relationships/{relationshipName} |
The server creates a relationship modification request and calls method “modifyResource” of the request handler. |
Usage
Here is an example how to use the JSON API server:
// create the server
$jsonApi = new JsonApiServer(new Deserializer(), new Serializer());
// add your request handlers to the registry of the json api server
$jsonApi->addHandler('customResources', new YourCustomRequestHandler());
// create the json api request
$request = new Request(
'GET',
new \GuzzleHttp\Psr7\Uri('/api/customResources'),
$jsonApi->createRequestBody(file_get_contents('php://input')),
'/api'
);
// get a json api response json api request
try{
$response = $jsonApi->handleHttpRequest($request);
} catch(\Exception $e){
$response = $jsonApi->handleException($e);
}
// send the response back to requesting HTTP client...
header('HTTP/1.1 '.$response->status());
foreach ($response->headers()->all() as $header => $value){
header($header.': '.$value);
}
echo $jsonApi->createResponseBody($response);