参数化角度请求的优缺点

时间:2015-04-18 15:44:02

标签: javascript angularjs angular-http

我是一名全职后端开发人员,刚开始为我自己的一些项目学习角度。

默认情况下,似乎有角度$http请求作为JSON字符串发送。我目前正在重写transformRequest方法,以便像jquery一样对其进行参数化。我的后端框架(Phalcon PHP)以这种方式接收它更方便。

在我开始这条道路之前,有没有以这种方式构建它的缺点?单元测试或使用第三方模块有什么问题吗?

修改

为了澄清,angular将POST作为JSON字符串发送到正文中。我用过的jQuery和其他框架像form-urlencded一样发送: 名称=乔纳森+ Doe的安培;年龄= 23&安​​培;式= A +%2B + B +%3D%3D + 13%25%21 http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms

其中,也许是由于内容标题填充了PHP中的$ _POST全局(我假设)与表单数据;

1 个答案:

答案 0 :(得分:3)

我建议你坚持使用JSON格式并在JSON请求体中发送数据而不是key = value param对。您可以在Phalcon中使用Request::getJsonRawBody()干净地接收JSON。

主要区别在于POST vars格式允许您发送key = value数据对。当涉及到更复杂的结构(数组,关联数组,嵌套对象等)时,您将开始遇到需要以某种方式解决的问题。如果在POST / PUT请求体中发送JSON对象,则不会发生这种情况。当然,您可以在AngularJS和Phalcon中对OOTB进行序列化和反序列化。

您应该强烈考虑仅针对GET参数的key = value params以及针对其他所有内容的JSON数据。显然,你可以将这两者混合在一起(我的意思是,即将您的文章的新内容作为PUT请求发送给JSON正文,但在URL中指定文章ID,如/article?id=123)。

您可能也会阅读REST API: Request body as JSON or plain POST data?