2015-04-18 1 views
2

Я полный рабочий день разработчик, только начинающий изучать углы некоторых моих собственных проектов.Плюсы и минусы параметрирования углового запроса

По умолчанию кажется угловым $http запросы отправляются как строки JSON. В настоящее время я переопределяю метод transformRequest, чтобы параметризовать его как jquery. Его более удобно для моей бэкэнд-инфраструктуры (Phalcon PHP), чтобы получить ее таким образом.

Прежде чем я свяжусь с этим путем, существуют ли какие-либо недостатки в его структурировании? Любые проблемы с тестированием модулей или использование сторонних модулей?

Редактировать

Чтобы уточнить, угловой отправляет POST, как JSON строки в теле. JQuery и другие рамки я использовал посыла как форму-urlencded как: Name = Jonathan + Doe & Возраст = 23 & формула = а +% 2B + б +% 3D% 3D + 13% 25% 21 http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms

Какие , возможно, из-за заголовка содержимого заполняет глобальный $ _POST в php (я предполагаю) с данными формы;

+0

Я честно считаю, что это предпочтение, особенно в тех случаях, когда в запрос не входит много данных. С большим количеством данных запроса я уверен, что тело запроса - лучший ответ, но для меньших сумм я не понимаю, почему один был бы лучше, чем другой. –

+3

Что вы подразумеваете под * параметризацией его как jquery *? – fracz

+0

Можете ли вы привести примеры того, как вы хотите отправлять свои данные, и как они отправляются по умолчанию? – arg20

ответ

3

Я бы рекомендовал вам придерживаться формата JSON и отправлять данные в тело запроса JSON вместо пар param = value param. Вы можете получить JSON чисто с Request::getJsonRawBody() в Phalcon.

Главное отличие состоит в том, что формат POST vars позволяет вам отправлять пары ключей = значение данных. Когда дело доходит до более сложных структур (массивов, ассоциативных массивов, вложенных объектов и т. Д.), У вас появятся проблемы, которые вам придется решить каким-то образом. Это не произойдет, если вы отправляете объекты JSON в телах запроса POST/PUT. И, конечно же, вы получаете сериализацию и десериализацию OOTB как в AngularJS, так и в Phalcon.

Вы должны сильно рассмотреть параметры key = value только для параметров GET и данные JSON для всего остального. Очевидно, вы можете смешивать эти два (я имею в виду, что вы отправляете новый контент для своей статьи в виде запроса PUT с телом JSON, но указываете идентификатор статьи в URL-адресе, например /article?id=123).

Вы также можете прочитать при чтении REST API: Request body as JSON or plain POST data?.

+0

Спасибо! Вы используете фалкон? Я использовал POST из-за простого использования $ request-> getPost («id», «int»). Если с getJsonRawBody(), если я не ошибаюсь, мне нужно проверить ifseet ($ json-> id)? затем $ filter-> sanitize ($ json-> id, "int"), например. Я мог бы написать класс, чтобы сделать эту автоматическую проверку, хотя я предполагаю. – jymboche

+0

Для простых значений, идентифицирующих ресурсы (например, id), вы должны использовать [параметры маршрута] (http://docs.phalconphp.com/pl/latest/reference/routing.html). Что касается приема и фильтрации данных JSON, да, AFAIK вы должны сделать это самостоятельно. – fracz

Смежные вопросы