Создать REST API в ATK4? - PullRequest
       6

Создать REST API в ATK4?

2 голосов
/ 10 октября 2011

Только начал возиться с ATK4. Я хотел бы использовать его как бэкэнд-API (если это возможно), а также для создания небольшой CMS на основе тех же данных, с которыми API будет работать. Доступ к API будет осуществляться через плагины браузера, поэтому ATK4 не будет выполнять рендеринг.

Итак, в основном мой вопрос: поставляется ли ATK4 с поддержкой для создания вашего собственного REST API, или мне в основном придется создавать эту функцию самостоятельно? Я нашел документы по API, но они, похоже, сосредоточены на создании методов API для обслуживания «движка» рендеринга.

В случае, если я должен сделать это сам, каков наилучший способ реализовать это на ATK4? (с точки зрения будущей совместимости).

Спасибо

1 Ответ

3 голосов
/ 11 октября 2011

Существует простой способ решения этой проблемы и общий способ.

Простой способ так же прост:

class page_api_article_add extends Page {
    function init(){
         parent::init();
         try {
             $this->add('Model_Article')->set($_POST)->update();
             echo json_encode("OK");
             exit;
         }catch (BaseException $e){
             echo json_encode($e->getMessage());
             exit;
         }
    }
}

Более сложное решение состоит в создании следующих элементов.:

  • Вам понадобится пользовательский API поверх ApiCLI.
  • Вам понадобится отдельная маршрутизация страниц
  • Внутри API вам необходимо определитькакие модели доступны через API и какой контроллер следует использовать
  • Контроллер реализует проверку аргументов и операции с моделями, такие как создание, обновление, удаление, дублирование и т. д.
  • Поддержка ключейАутентификация
  • Пользовательские исключения

Я реализовал это однажды, но мне нужно будет договориться с моим клиентом, чтобы убедиться, что я могу передать код atk4-addons.

В настоящее время я бы посоветовал вам пойти по «прямому» маршруту, пока не будет выпущен универсальный API.

...