API Platform Core provides an easy way to override the default order of items in your collection.
By default, items in the collection are ordered in ascending (ASC) order by their resource identifier(s). If you want to
customize this order, you must add an order
attribute on your ApiResource annotation:
<?php
// src/AppBundle/Entity/Book.php
namespace AppBundle\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
/**
* @ApiResource(attributes={"order"={"foo": "ASC"}})
*/
class Book
{
// ...
/**
* ...
*/
public $foo;
}
This order
attribute is used as an array: the key defines the order field, the values defines the direction.
If you only specify the key, ASC
direction will be used as default. For example, to order by foo
& bar
:
<?php
// src/AppBundle/Entity/Book.php
namespace AppBundle\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
/**
* @ApiResource(attributes={"order"={"foo", "bar"}})
*/
class Book
{
// ...
/**
* ...
*/
public $foo;
/**
* ...
*/
public $bar;
}
It’s also possible to configure the default filter on an association property:
<?php
// src/AppBundle/Entity/Book.php
namespace AppBundle\Entity;
use ApiPlatform\Core\Annotation\ApiResource;
/**
* @ApiResource(attributes={"order"={"author.username"}})
*/
class Book
{
// ...
/**
* @var User
*/
public $author;
}
Made with love by
Les-Tilleuls.coop can help you design and develop your APIs and web projects, and train your teams in API Platform, Symfony, Next.js, Kubernetes and a wide range of other technologies.
Learn more