2010-11-04 91 views
11

我公司返工其API,并希望让一切权利这个时候;)多数民众赞成设置...适用于Android,iOS的RESTful框架...?

  • 我们的客户在互联网上传送数据。
  • 客户端是手机像iPhone,机器人会,J2ME,黑莓...
  • 服务器在Ruby中编码on Rails的

我们想通过一个框架,以实现...

  • 在客户端上使用ActiveResource。
  • 框架应该进行连接(REST),解析和(动态)提供模型
  • 许可证必须是开源的。
  • 授权应包括在内。我们使用OAuth并需要根据任何请求传递访问令牌。也许作为参数或HTTP头?
  • HTTPS/SSL支持
  • 分页和关系(与延迟加载)的支持将是伟大的!其他的框架必须能够针对这些事情进行调整。

我们已经找到以下框架,请你们评估它们。也许你一个使用了一些他们或不同的东西......


  • 安卓RESTProvider from Novoda/Carl-Gustaf Harroch

    • 提供商提供从Android和RESTProvider数据源的抽象自动解析的RESTful API响应进入提供者。 RESTProvider是处理Android中的Web服务时所有通常重新实现的功能的实现。用户可以无缝地与提供JSON或XML作为响应的任何Web服务API进行交互。要在活动中查询RESTProvider,用户只需指定一个端点,然后查询API RESTful函数。 RESTProvider还处理所有HTTP查询缓存。
    • 还没有找到比
    • 提供缓存以及
    • 发行+文档计划于2011年初

  • iOS的其他多文档:http://iphoneonrails.com/

    • 库为iOS和Rails
    • REST风格和 “的ActiveResource” 为本
    • 包括XML/JSON解析器
    • 免费许可
    • 分页?的Android?,懒加载之间的沟通?


  • 安卓Spring Android Rest Template Module
    • Spring的RestTemplate是一个强大的,基于Java的流行REST客户端。 Spring Android Rest Template Module提供了一个RestTemplate版本,可以在Android环境中运行。

  • 安卓:关于REST的思想严重时

  • Android的你应该总是在this video of Google IO 2010看一看:Feed Framework
    • com.google.android.feeds
    • 帮助您构建内容提供者的类集合。该框架专门用于帮助您将应用程序连接到Web API。
+2

后评价相当长的时间,我们决定选择“春天的Android休息模板模块”了。 – OneWorld 2010-11-29 14:15:41

回答

11

我是RESTProvider的作者。还是非常早期的阶段,所以我不建议在生产中使用它。我一直在使用它在几个正在生产的项目,但我最适合特定需求的代码。我会在今年年底之前尝试获得公共稳定的API。

在问候返工的API,我建议如下:

  1. 用gzip压缩
  2. 使用ETag缓存
  3. 使用标准不修改(我看到这里的命名从改变的情况oauth_token到my_token,这使得大多数库无需修改) - OAuth/REST
  4. 为所有对象使用创建/修改的时间戳和远程ID为了启用缓存客户端(SQLite冲突条款): {“m yobject“:{”createdAt“:xxxx,”rid“:”hashvalue“}} 4a。使用一个很好的方法来识别用户/活动/应用程序中的对象返回:OpenSocial的应用“应用程序ID” +“用户ID” +“活动ID”
  5. 身高JSON在XML
  6. 不想简单(最低深度可能)
  7. 返回完整的对象与一个该对象中的许多关系: {“父”:...... “有”:{“完整的对象不只是ID”}}
  8. 不要返回只有ID(“category”:[2,3,4]应该是“category”:[{“name”:“testing”,“id”:2},{“name”:“production”,“id” 3}})
  9. 考虑每个ca将彼此独立(即,我应该有足够的信息呼叫http://test.com/object.json来填充我的看法)

对于文档: 1.提供测试服务器 2.测试 3提供的Java/PHP /红宝石等示例脚本提供了curl ..

这就是我现在所能想到的。随着我提出更多建议,我可能会添加上面的内容。

+0

重点8(和普通的REST主体):确保每个“事物”都是唯一标识的,并且可以通过URL访问。 URL(UNIQUE资源定位符)可以用作对象ID。 – 2010-11-29 14:25:47

+0

嗨,它足够稳定,我打算在一个项目中使用它。 – 2011-10-11 13:37:08

5

我建议考虑看看RestKit for iOS

  • 高性能,螺纹网络层与请求/响应的简单API
  • 对象映射系统用于映射远程有效载荷送入本地对象声明(包括关系)
  • 与核心数据集成以提供具有同步功能的远程数据的快速本地缓存
  • 支持从一系列JSON有效负载生成种子数据库
  • 用于Ruby on Rails的后端整合(RKRailsRouter)的具体支持
  • Apache许可证
  • 用于生产在许多优秀的应用程序(即Gate Guru
+0

我在我的几个项目中使用iOS的RestKit。它总是表现出预期。 – Umair 2015-05-11 09:38:13

相关问题