AppEngine,REST和服务器请求

时间:2012-12-07 16:12:08

标签: web-services google-app-engine rest optimization request

我最近接手了一个涉及和iOS应用程序连接到Restful Web服务以发送和检索数据的项目,我发现自己在服务器性能方面遇到了困难。

由于它是RESTful,因此可以从不同的URI端点访问不同类型的数据。当用户第一次登录应用程序(忽略注册部分)时,客户端必须下载该用户的所有数据。由于数据驻留在不同的端点,客户端向每个端点发出请求,导致许多请求到同一服务器获取所有数据。

我的问题......这是一个健全的架构吗?服务器最终处理许多请求只是为了获取单个用户的数据。拥有一个返回所有用户数据的请求会不会更为谨慎?服务器是appengine,我正在尝试更有效地使用它的免费配额。

提前感谢任何见解!

2 个答案:

答案 0 :(得分:1)

在不知道数据结构的情况下很难回答。

如果您在6-7个请求中重新查询相同的实体,那么这是一个坏主意。 如果您要查询不同的实体,那么将它组合到一个查询中就不会有太大的区别。

拥有多个请求还可以让您的UI“感觉”响应更快,因为用户在结果进入时会看到页面更新。只需一个请求,用户就会等待整个请求完成。

听起来创建项目的人最初决定通过分离对不同类型对象的请求来满足REST API的清洁度。如果您想将所有与用户相关的对象统一为一个请求,那么它可能是一个“混乱”的架构。

虽然拥有多个请求确实存在一些开销,但通常情况并非如此。

答案 1 :(得分:0)

请求时间限制为60秒。根据单个“返回所有用户数据”请求需要完成的工作,这可能会发挥作用。

检查Google App Engine文档:
https://developers.google.com/appengine/docs/java/runtime#The_Request_Timer