--- /dev/null
+<?php
+
+namespace Shaarli\Api\Controllers;
+
+use \Slim\Container;
+
+/**
+ * Abstract Class ApiController
+ *
+ * Defines REST API Controller dependencies injected from the container.
+ *
+ * @package Api\Controllers
+ */
+abstract class ApiController
+{
+ /**
+ * @var Container
+ */
+ protected $ci;
+
+ /**
+ * @var \ConfigManager
+ */
+ protected $conf;
+
+ /**
+ * @var \LinkDB
+ */
+ protected $linkDb;
+
+ /**
+ * @var int|null JSON style option.
+ */
+ protected $jsonStyle;
+
+ /**
+ * ApiController constructor.
+ *
+ * Note: enabling debug mode displays JSON with readable formatting.
+ *
+ * @param Container $ci Slim container.
+ */
+ public function __construct(Container $ci)
+ {
+ $this->ci = $ci;
+ $this->conf = $ci->get('conf');
+ $this->linkDb = $ci->get('db');
+ if ($this->conf->get('dev.debug', false)) {
+ $this->jsonStyle = JSON_PRETTY_PRINT;
+ } else {
+ $this->jsonStyle = null;
+ }
+ }
+}