OrderFilter

Allows to change default ordering of collection responses.

Syntax: ?order[property]=<asc|desc>

use SourceBroker\T3api\Annotation as T3api;
use SourceBroker\T3api\Filter\OrderFilter;

/**
 * @T3api\ApiResource (
 *     collectionOperations={
 *          "get"={
 *              "path"="/users",
 *          },
 *     },
 * )
 *
 * @T3api\ApiFilter(
 *     OrderFilter::class,
 *     properties={"firstName", "middleName", "lastName", "address.city"}
 * )
 */
class User extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser
{
}

Configuration of example above means it is possible to order by single field (query string ?order[firstName]=desc) or by multiple of them (query string ?order[firstName]=desc&order[address.city]=asc&order[middleName]=asc).

It may happen that conflict of names will occur if order is also the name of property with enabled another filter. Solution in such cases would be a change of parameter name used by OrderFilter. It can be done using argument orderParameterName, as on example below:

use SourceBroker\T3api\Annotation as T3api;
use SourceBroker\T3api\Filter\OrderFilter;

/**
 * @T3api\ApiResource (
 *     collectionOperations={
 *          "get"={
 *              "path"="/users",
 *          },
 *     },
 * )
 *
 * @T3api\ApiFilter(
 *     OrderFilter::class,
 *     properties={"firstName", "middleName", "lastName", "address.city"},
 *     arguments={"orderParameterName": "customOrderParameterName"},
 * )
 */
class User extends \TYPO3\CMS\Extbase\Domain\Model\FrontendUser
{
}