static function defaultAction(Request $request, Service $service, $repositoryName) { $repository = $service->getRepository($repositoryName); if ($repository) { $response = new JsonResponse(); $etag = md5($repository->getLastModifiedDate()); $response->setEtag($etag); if ($response->isNotModified($request)) { $response->send(); return $response; } $result = []; $result['content'] = []; foreach ($repository->getContentTypeDefinitions() as $definition) { $result['content'][$definition->getName()]['title'] = $definition->getTitle() ? $definition->getTitle() : $definition->getName(); $result['content'][$definition->getName()]['lastchange_content'] = $repository->getLastModifiedDate($definition->getName()); $result['content'][$definition->getName()]['lastchange_cmdl'] = 0; // TODO } $response->setContent(json_encode($result, JSON_PRETTY_PRINT)); $response->setEtag($etag); $response->setPublic(); return $response; } }
/** * @param Request $request * @param mixed $data * * @return JsonResponse */ protected function getJsonResponse(Request $request, $data = null) { $date = new \DateTime(); $date->modify('+1 day'); $response = new JsonResponse($data); $response->setExpires($date); $response->setETag(md5($response->getContent())); $response->setPublic(); $response->isNotModified($request); $response->headers->set('X-Proudly-Crafted-By', "LesPolypodes.com"); // It's nerdy, I know that. return $response; }
public function getListAction(Application $app) { $userList = $this->repository->findAll(); $date = new \DateTime(); $date->modify('+' . self::MAX_AGE . ' seconds'); $response = new JsonResponse($userList, JsonResponse::HTTP_OK); $responseHash = sha1($response->getContent()); $response->setMaxAge(self::MAX_AGE); $response->setSharedMaxAge(self::MAX_AGE); $response->setExpires($date); $response->setETag($responseHash); $response->isNotModified($app['request']); return $response; }