Tag: 客户端 服务器

测试JSON客户端 – 服务器API的推荐方法是什么?

编辑#2:有没有人有一个很好的方法来测试客户端 – 服务器应用程序的“中间”,我们可以拦截请求和响应,根据需要伪造客户端或服务器,并提供api的自我文档? 在许多情况下,黄瓜可能是一个很好的解决方案,但它并不是我想要的。 而这个中间层应该是客户端/服务器实现不可知的。 (例如,黑盒子)。 我们的客户端 – 服务器模型是带有Flex客户端的ruby-on-rails服务器,使用带有JSON作为数据格式的RESTish接口。 因此,客户端发布到服务器的任何内容通常都是单个JSON参数。 服务器做它的事情并用纯JSON模型响应。 我们在服务器上进行了标准的rails测试,我们正在努力在客户端上完成正确的FlexUnit测试(它是一个移动的目标)。 但是,我的团队对当前测试模型的有效性存在争议,因为服务器上的每个更改似乎都会破坏API的一部分。 这告诉我,API通信存在问题(团队成员之间,代码中的自我文档等),以及缺乏正确的API健全性测试。 所以我一直在质疑我们是否需要一个模拟客户端来测试纯JSON级别的服务器(没有富客户端的所有其他复杂性),并且可能是一个模拟服务器用于与富客户端做同样的事情。 这有两个目的,即记录API并提供对API本身的更全面的测试。 有争议的原因是rails人员声称rails集成测试足以测试所有服务器请求,而中间测试环境只是多余的。 所以这里的问题是,鉴于我们的情况,应该如何自我记录API,以及我们应该如何测试API本身? 编辑: 我们有像/foo/444/bar.js这样的路由,但参数实际上可以是任何复杂的JSON字符串,具体取决于操作,例如: json={ “foo”:{ “x”:1, “y”:2 }, “bar”:[1,2,3,4,5] } 但除了手动编辑的API文档外,没有自我文档。 rails控制器通常只是反序列化并将更改直接应用于模型。 很高兴有一些常见的测试来告诉我们什么时候改变, 以及预期的结果。

带有远程Rails服务器的BackBone客户端

背景: 我使用“rails g scaffold hotel name stars:integer”来快速启动(并在数据库中插入一些记录),并在rails app之外编写一个Backbone客户端。 我使用Safari文件在本地打开Backbone客户端:///Users/lg/Workspace/www/index.html用于测试客户端,因为我的想法是将rails服务器放在主机上(例如Heroku)并插入Backbone客户端进入PhoneGap应用程序。 我的骨干客户端只有几行: Hotel = Backbone.Model.extend({ initialize: function(){ console.log(“initialize Hotel”) } }); Hotels = Backbone.Collection.extend({ model: Hotel, url: ‘http://0.0.0.0:3000/hotels’ }); 但是当我获取带有主干的酒店时,rails会使用format.html进行响应,而不是Backbone可以解析的format.json 。 hotels_controller.rb # GET /hotels # GET /hotels.json def index @hotels = Hotel.all respond_to do |format| format.html # index.html.erb format.json { render json: @hotels } end end […]

在两个不同的系统之间同步对象,最好的方法?

我正在使用基于XML的有效负载在iPhone和网站之间同步两个业务对象,并且愿意为最佳例程征求一些想法。 这个问题的本质是相当通用的,我可以看到它适用于需要在Web实体和客户端(桌面,移动电话等)之间同步业务对象的各种不同系统。 可以双方编辑,删除和更新业务对象。 双方都可以在本地存储对象,但同步仅在iPhone端启动,以便断开连接查看。 所有对象都有一个updated_at和created_at时间戳,并且两边都有一个RDBMS支持(iPhone端的SQLite和网络上的MySQL ……再次我不认为这很重要)并且手机确实记录了最后一次尝试同步。 否则,不存储其他数据(此刻)。 您将使用什么算法来最小化系统之间的网络聊天以进行同步? 如果“软删除”不是一个选项,你将如何处理删除? 您会添加哪些数据模型更改以实现此function?