Я создаю API, используя ZF2. Ответ сервера должен содержать только JSON. Это должен быть только JSON, если есть ошибка или 404 или 403, а в других случаях. Теперь, по умолчанию ZF2 является tryong для возврата HTML. Я использую ZendSkeletonApplicationКак изменить стратегию рендеринга по умолчанию на JSON в ZF2?
ответ
ZF2 вызывает ошибку by triggering specific events such as MvcEvent::EVENT_DISPATCH_ERROR
or MvcEvent::EVENT_RENDER_ERROR
, когда вызывается исключение.
Класс Zend\Mvc\View\Http\ExceptionStrategy
присваивает несколько слушаний этим событиям, поэтому может быть сгенерирована страница ошибок HTML.
Чтобы вернуть сообщение об ошибке в формате JSON вы можете прикрепить свой собственный custom exception strategy, with a higher priority, and check if the response should be JSON
В вашем контроллере самый простой способ - вернуть экземпляр Zend\View\Model\JsonModel
. Например:
$model = new JsonModel(array(
'httpStatus' => 403,
'title' => 'Forbidden',
'message' => 'You are not authorized to access this page.'
));
return $model;
Если нет особых причин, вы выбрали приложение MVC скелета в качестве отправной точки, вы можете рассмотреть вопрос о переходе на https://apigility.org скелета. Это также приложение ZF, но оно построено как чистый json api.
- 1. Как изменить стратегию выборки hibernate по умолчанию?
- 2. ZF2 Просмотреть стратегию
- 3. Bluemix ZF2 изменить индексный файл по умолчанию
- 4. Конфигурация маршрутизации по умолчанию ZF2
- 5. изменить стратегию сопоставления hibernate по умолчанию для перечислений
- 6. Grails JSON Views - дата по умолчанию рендеринга
- 7. Как изменить поведение рендеринга по умолчанию ComboBoxTableCell в JavaFX 2?
- 8. zf2 Отказ рендеринга по formInput не удается
- 9. Yii: Как изменить путь по умолчанию для функции рендеринга?
- 10. Установить средство рендеринга по умолчанию
- 11. Как изменить TableCellRenderer без потери рендеринга по умолчанию?
- 12. ZF2 вид рендеринга
- 13. Inject значение по умолчанию в ZF2 Router
- 14. Rails: изменить структуру по умолчанию JSON
- 15. Как изменить сеанс cookie-пути в ZF2?
- 16. Как изменить стратегию кэша по умолчанию Первая стратегия для сетевой стратегии в sw-precache?
- 17. Как изменить стратегию удаления кеша в hdiv
- 18. ZF2 Форма Выберите Disbale По умолчанию Параметр
- 19. Изменить По умолчанию Поставщик JSON на сервере приложений WebSphere
- 20. Замените стратегию аутентификации по умолчанию в Padrino-Warden
- 21. Как изменить по умолчанию браузер по умолчанию для Android умолчанию
- 22. ZF2 навигации с маршрутом скелета по умолчанию
- 23. Как изменить браузер по умолчанию на iphone?
- 24. Как изменить дефолт по умолчанию на магистраль?
- 25. Как изменить стратегию блокировки в SQL Server?
- 26. Как указать/изменить стратегию слияния git в плагине E Git
- 27. ZF2: как уловить исключения во время рендеринга
- 28. По умолчанию для текстового элемента в формах zf2
- 29. Как изменить схему по умолчанию
- 30. Как изменить местоположение по умолчанию stack.yaml по умолчанию в Windows?
Что вы пытаетесь до сих пор? И какой у вас код? – danopz
Я использую приложение скелета zend. Я знаю, как вернуть JSON в контроллерах действий (вернуть новый JsonModel (...)). Я хочу, чтобы приложение всегда возвращало JSON. – Ildar