适用于Android,iOS的RESTful框架......?

One*_*rld 11 iphone rest android restful-authentication activeresource

我的公司正在重新设计它的API,并希望在这个时候做好一切;)那就是设置......

  • 我们通过互联网向客户提供数据.
  • 客户端是手机,如iPhone,Androids,J2ME,Blackberry ......
  • 服务器在Ruby on Rails中编码

我们希望通过框架实现......

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

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


  • Android:来自Novoda/Carl-Gustaf Harroch的RESTProvider

    • 提供程序提供Android上数据源的抽象,RESTProvider自动将RESTful API响应解析为Provider.在处理Android中的Web服务时,RESTProvider是所有常用重新实现的功能的实现.用户可以与任何提供JSON或XML作为响应的Web Service API无缝连接.要查询活动中的RESTProvider,用户只需指定一个端点,然后查询API RESTful函数.RESTProvider还处理所有HTTP查询和缓存.
    • 除此之外没有找到太多文档
    • 还提供缓存
    • 发布+文档计划于2011年初发布

  • iOS:http://iphoneonrails.com/

    • Lib用于iOS和Rails之间的通信
    • 基于RESTful和"ActiveResource"
    • 包括XML/JSON Parser
    • 免费许可证
    • 分页?,android ?,懒加载?


  • Android:Spring Android Rest模板
    • Spring的RestTemplate是一个强大的,流行的基于Java的REST客户端.Spring Android Rest Template Module提供了一个适用于Android环境的RestTemplate版本.


  • Android:Feed框架
    • com.google.android.feeds
    • 一组类,可帮助您构建内容提供程序.该框架专门用于帮助您将应用程序连接到Web API.

cha*_*och 11

我是RESTProvider的作者.还处于早期阶段,所以我不建议在生产中使用它.我一直在生产的几个项目中使用它,但我根据具体需要调整了大部分代码.我将尝试在年底之前获得一个公共稳定的API.

关于重新编写API,我建议如下:

  1. 使用GZip压缩
  2. 使用ETags进行缓存
  3. 使用没有修改的标准(我看到命名从oauth_token更改为my_token的情况,这使得大多数库无需修改就无用) - OAuth/REST
  4. 对所有对象使用创建/修改时间戳和远程ID以启用缓存客户端(SQLite冲突子句):{"myobject":{"createdAt":xxxx,"rid":"hashvalue"}} 4a.使用一种好方法来识别为用户/活动/应用程序返回的对象:opensocial使用"application id"+"user id"+"activity id"
  5. 首选基于XML的JSON
  6. 更喜欢简单(尽可能深度)
  7. 返回该对象中具有一对多关系的完整对象:{"parent":...."has":{"完整对象而不仅仅是ID"}}
  8. 不要仅返回ID("类别":[2,3,4]应为"类别":[{"name":"testing","id":2},{"name":"production", "id":3}})
  9. 考虑每个调用是相互独立的(即我应该有足够的信息来调用http://test.com/object.json来填充我的观点)

对于文档:1.提供测试服务器2.提供cUrl进行测试3.提供java/php/ruby​​等示例脚本...

这就是我现在所能想到的.当我提出更多建议时,我可能会加上这个.


Bla*_*ers 5

我建议你看看RestKit for iOS

  • 高性能,线程化的网络层,具有用于请求/响应的简单API
  • 用于以声明方式将远程有效负载映射到本地对象的对象映射系统(包括关系)
  • 与Core Data集成,提供具有同步功能的远程数据的快速本地缓存
  • 支持从一系列JSON有效负载生成种子数据库
  • 与Ruby on Rails后端集成的特定支持(RKRailsRouter)
  • Apache许可
  • 用于生产许多优秀的应用程序(即Gate Guru)