2010-11-04 37 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

相關問題