diff --git a/api/html/index.php b/api/html/index.php
index 9400c20..3330c7b 100644
--- a/api/html/index.php
+++ b/api/html/index.php
@@ -17,7 +17,25 @@ $container->set('databases', function () {
AppFactory::setContainer($container);
$app = AppFactory::create();
-$app->get('/', 'TorstenHettstedt\TimekeepingApi\Controller\HelloWorldController:read');
+$app->get(
+ '/',
+ 'TorstenHettstedt\TimekeepingApi\Controller\HelloWorldController:read'
+);
+
+$app->get(
+ '/views/working-hours/weekly',
+ 'TorstenHettstedt\TimekeepingApi\Controller\WorkingHoursViewController:browseWeekly'
+);
+
+$app->get(
+ '/views/working-hours/monthly',
+ 'TorstenHettstedt\TimekeepingApi\Controller\WorkingHoursViewController:browseMonthly'
+);
+
+$app->get(
+ '/views/working-hours/yearly',
+ 'TorstenHettstedt\TimekeepingApi\Controller\WorkingHoursViewController:browseYearly'
+);
$app->addErrorMiddleware(true, true, true);
diff --git a/api/src/Controller/NotDatabasesException.php b/api/src/Controller/NotDatabasesException.php
new file mode 100644
index 0000000..515fd85
--- /dev/null
+++ b/api/src/Controller/NotDatabasesException.php
@@ -0,0 +1,11 @@
+container = $container;
+ }
+
+ /**
+ * @param Request $request
+ * @param Response $response
+ * @param mixed[] $args
+ *
+ * @return Response
+ *
+ * @noinspection PhpUnusedParameterInspection
+ * @throws NotDatabasesException
+ * @throws Exception
+ */
+ public function browseWeekly(Request $request, Response $response, array $args): Response
+ {
+ if ($this->container->has('databases') === false) {
+ throw new NotDatabasesException('Datenbank ist nicht Vorhanden');
+ }
+ $repository = new WorkingHoursWeeklyViewRepository($this->container->get('databases'));
+ return $this->printResponse($response, $repository->findAll());
+ }
+
+ /**
+ * @param Request $request
+ * @param Response $response
+ * @param mixed[] $args
+ *
+ * @return Response
+ *
+ * @noinspection PhpUnusedParameterInspection
+ * @throws Exception
+ */
+ public function browseMonthly(Request $request, Response $response, array $args): Response
+ {
+ if ($this->container->has('databases') === false) {
+ throw new NotDatabasesException('Datenbank ist nicht Vorhanden');
+ }
+ $repository = new WorkingHoursMonthlyViewRepository($this->container->get('databases'));
+ return $this->printResponse($response, $repository->findAll());
+ }
+
+ /**
+ * @param Request $request
+ * @param Response $response
+ * @param mixed[] $args
+ *
+ * @return Response
+ *
+ * @noinspection PhpUnusedParameterInspection
+ * @throws Exception
+ */
+ public function browseYearly(Request $request, Response $response, array $args): Response
+ {
+ if ($this->container->has('databases') === false) {
+ throw new NotDatabasesException('Datenbank ist nicht Vorhanden');
+ }
+ $repository = new WorkingHoursYearlyViewRepository($this->container->get('databases'));
+ return $this->printResponse($response, $repository->findAll());
+ }
+
+ /**
+ * @param Response $response
+ * @param WorkingHoursView[] $data
+ *
+ * @return Response
+ */
+ protected function printResponse( Response $response, array $data): Response
+ {
+ $payload = json_encode($data);
+
+ $response->getBody()->write($payload);
+
+ return $response
+ ->withHeader('Content-Type', 'application/json')
+ ->withStatus(200);
+ }
+
+}
\ No newline at end of file