/** * @ApiDoc( * description="Restaurant list", * statusCodes={200="Restaurant"}, * section="Restaurant", * filters={ * {"name"="name", "dataType"="string", "required"=true}, * {"name"="cuisine", "dataType"="string", "required"=false, "pattern"="not_null"}, * {"name"="averageCost", "dataType"="string", "required"=false, "pattern"="not_null"}, * {"name"="geoname", "dataType"="integer", "required"=false}, * {"name"="lat", "dataType"="string", "required"=false}, * {"name"="lng", "dataType"="string", "required"=false}, * {"name"="maxDistance", "dataType"="integer", "required"=false}, * {"name"="orderBy", "dataType"="string", "required"="false", "pattern"="score|distance"}, * {"name"="page", "dataType"="string", "required"=false} * }) * @Route("/api/restaurants") * @Cache(maxage="+1 week", public=true) * @Method({"GET"}) * @return View */ public function getAllAction() { $request = $this->requestStack->getCurrentRequest(); $pager = $this->restaurantRepository->getRestaurantsPager($request); $this->cacheManager->tagController($request, CacheTag::RESTAURANT); return $this->view($this->getPagedViewData($pager, 'restaurants')); }