#php #user-interface #frameworks #atk4
#php #пользовательский интерфейс #фреймворки #atk4
Вопрос:
Только начал возиться с ATK4. Я хотел бы использовать его как в качестве серверного API (если это возможно), так и для создания небольшой CMS на основе тех же данных, с которыми будет работать API. Доступ к API будет осуществляться плагинами браузера, поэтому ATK4 не будет выполнять рендеринг.
Итак, в основном мой вопрос в том, поддерживает ли ATK4 создание собственного REST API или мне придется создавать эту функциональность самостоятельно? Я нашел документы API, но они, похоже, сосредоточены на создании методов API для обслуживания «движка» рендеринга.
В случае, если я должен сделать это сам, каков наилучший способ реализовать это на ATK4? (с точки зрения будущей совместимости).
Спасибо
Ответ №1:
Существует простой способ решить эту проблему и общий способ.
Простой способ так же прост, как это:
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.
Комментарии:
1. Спасибо, на данный момент API будет очень легким и простым, но в будущем я ожидаю, что он станет немного больше и сложнее .. так что я с нетерпением жду возможности услышать больше о вашей общей реализации API 🙂
2. Привет, есть какие-нибудь новости об универсальном API ATK4?