Full default annotations

Param fetcher

QueryParam

use FOS\RestBundle\Controller\Annotations\QueryParam;

/**
 * @QueryParam(
 *   name="",
 *   key=null,
 *   requirements="",
 *   incompatibles={},
 *   default=null,
 *   description="",
 *   strict=false,
 *   map=false,
 *   nullable=false
 * )
 */

RequestParam

use FOS\RestBundle\Controller\Annotations\RequestParam;

/**
 * @RequestParam(
 *   name="",
 *   key=null,
 *   requirements="",
 *   default=null,
 *   description="",
 *   strict=true,
 *   map=false,
 *   nullable=false
 * )
 */

FileParam

use FOS\RestBundle\Controller\Annotations\FileParam;

/**
 * @FileParam(
 *   name="",
 *   key=null,
 *   requirements={},
 *   default=null,
 *   description="",
 *   strict=true,
 *   nullable=false,
 *   image=false
 * )
 */

View

use FOS\RestBundle\Controller\Annotations\View;

/**
 * @View(
 *  statusCode=null,
 *  serializerGroups={},
 *  serializerEnableMaxDepthChecks=false
 * )
 */

Routing

Route

RestBundle extends the @Route Symfony annotation. The following are shortcuts to define routes limited to a specific HTTP method: @Delete, @Get, @Head, @Link, @Patch, @Post, @Put, @Unlink, @Lock, @Unlock, @PropFind, @PropPatch, @Move, @Mkcol, @Copy. All of them have the same options as @Route.

Example:

// src/Controller/BlogController.php
namespace App\Controller;

use FOS\RestBundle\Controller\AbstractFOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;

class BlogController extends AbstractFOSRestController
{
    /**
     * @Rest\Get("/blog", name="blog_list")
     */
    public function list()
    {
        // ...
    }
}