mirror of
https://github.com/flarum/core.git
synced 2025-10-13 07:54:25 +02:00
Update API action architecture
- An API action handles a Flarum\Api\Request, which is a simple object containing an array of params, the actor, and optionally an HTTP request object - Most API actions use SerializeAction as a base, which parses request input according to the JSON-API spec (creates a JsonApiRequest object), runs the child class method to get data, then serializes it and assigns it to a JsonApiResponse (standard HTTP response with a Tobscure\JsonApi\Document as content) - The JSON-API request input parsing is subject to restrictions as defined by public static properties on the action (i.e. extensible) - Also the actor is given to the serializer instance now, instead of being a static property
This commit is contained in:
19
src/Api/JsonApiResponse.php
Normal file
19
src/Api/JsonApiResponse.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php namespace Flarum\Api;
|
||||
|
||||
use Illuminate\Http\Response;
|
||||
use Tobscure\JsonApi\Document;
|
||||
|
||||
class JsonApiResponse extends Response
|
||||
{
|
||||
public $content;
|
||||
|
||||
public function __construct($data = null, $status = 200, array $headers = [])
|
||||
{
|
||||
parent::__construct('', $status, $headers);
|
||||
|
||||
$this->headers->set('Content-Type', 'application/vnd.api+json');
|
||||
|
||||
$this->content = new Document;
|
||||
$this->content->setData($data);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user