2015-10-05 56 views
0

我負責爲iOS應用程序生成服務器後端的項目。有沒有一種標準的方式來爲iOS客戶端做合同優先的Web服務端點?

我想正式定義客戶端調用的服務接口,以便IOS,Android和服務器團隊都可以實踐契約優先開發。

在黑暗的過去,我們會使用WSDL並生成RPC風格的客戶端和服務器互操作樣板文件。然而,這不是IOS項目的規範。我們也研究過Apache Thrift,但是沒有Swift的代碼生成器,Objective-C生成器似乎產生依賴於不推薦的IOS API的代碼。

這將我們帶到了REST,它很適合作爲移動物體狀態的方式。對於那種說:「嗨服務器,用這些參數做X並返回給我一個結果」的對話似乎不太好。我們最終創建了用於特定操作的服務器端控制器,並且通過爲獲取正確的參數而使用sticklers來「定義」服務的調用約定。合同最後。

有沒有一種標準的方式來爲iOS客戶端開展合同優先的Web服務開發,還是我只需要將文檔視爲規範?

回答

0

TL;博士:第

我不知道做事的「標準」的方式,但今天許多 客戶機/服務器應用程序確實使用一個RESTful接口 一些化身。 JSON是通常的格式。

有一些有據可查的第三方實用程序,可根據蘋果的提供 NSURLSession處理 這對您的客戶端(如[RESTKit] [1]在REST的情況下),或 你可以滾你自己的實現或像[AFNetworking] [2]

這樣的網絡庫如果需要,iOS還可以處理基於套接字的通信。 (對於此存在第三方 庫爲好。)

[1]:https://github.com/RestKit/RestKit [2]: http://nshipster.com/afnetworking-2/

+0

與REST的問題是,在客戶端 - 服務器接口的*規格*是廣告-hoc。我正在尋找某種形式的界面定義語言。 此外,當您有像「sendConfirmationToken」這樣的服務器端操作時,我不確定如何以RESTful方式公開該操作。只是使用JSON作爲請求主體並不會使RESTful成爲可能。 –

+0

那麼,答案是否定的。我會更新我的答案以反映這一點。 – Nick