mirror of
https://github.com/flarum/framework.git
synced 2025-05-23 23:29:57 +08: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:
25
src/Api/Request.php
Normal file
25
src/Api/Request.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php namespace Flarum\Api;
|
||||
|
||||
use Flarum\Support\Actor;
|
||||
use Illuminate\Http\Request as IlluminateRequest;
|
||||
|
||||
class Request
|
||||
{
|
||||
public $input;
|
||||
|
||||
public $actor;
|
||||
|
||||
public $httpRequest;
|
||||
|
||||
public function __construct(array $input, Actor $actor, IlluminateRequest $httpRequest = null)
|
||||
{
|
||||
$this->input = $input;
|
||||
$this->actor = $actor;
|
||||
$this->httpRequest = $httpRequest;
|
||||
}
|
||||
|
||||
public function get($key, $default = null)
|
||||
{
|
||||
return isset($this->input[$key]) ? $this->input[$key] : $default;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user