2013-01-02 76 views
3

我有一個運行在PHP上的網站,我需要在Android,iOS和Windows Phone平臺上開發相同的應用程序。我想我需要創建Web服務來從網站獲取數據,但我不是很熟悉它。編寫SOAP vs RESTful Web服務用於iPhone,Android和Windows Phone應用程序

哪個這些方法中的一個將是最好的,從相容性和易用性的觀點使用點可以在所有的平臺上使用的:

1)基於REST Web服務 2)基於SOAP的Web服務 3)任何其他方法

而且這將是可以很容易地消耗在所有的平臺,並在內置的SDK支持來分析他們的最好響應格式:XML/JSON/SOAP

如果有人碰到過這樣的情況來請建議。感謝任何迴應,因爲我必須儘快開始實施。

感謝, MG

+2

我會選擇REST over SOAP,因爲REST基於HTTP協議,因此應該由所有平臺本機支持。而且,設置和調試SOAP可能會非常痛苦。 – Valdars

回答

4

目前的工作和經驗,涉及多個平臺和易於開發的僅僅是使用JSON通過HTTP使用OAuth簽署。

HTTP,因爲它在支持Web瀏覽器的每個平臺(以及不通過使用libCURL的平臺)上都可用,並且還允許您在必要時使用SSL,並且具有非常知名的可伸縮性服務基礎結構。

JSON,因爲它遵循可編程對象表示法,允許您在HTTP請求正文和響應正文中傳輸可解碼結構。這裏有很多圖書館,特別是你正在經歷的平臺。這樣可以快速地將對象從數據流和語言(PHP服務器/ C++客戶端)之間推送出來。

OAUTH,因爲它是一個簡單但令人驚訝的使用HTTP的身份驗證協議,可以很好地識別您的應用程序和您的用戶,所有這些都不會通過不安全的鏈接以明文形式傳輸密碼(令牌)。

雖然顯然有一點需要記住安全性,因爲當您將應用程序提供給客戶端設備時,您無法保證客戶端使用您的Web服務是您構建的客戶端。如果你寫一個成功的產品,你會發現你的客戶被黑客攻擊,其通信中斷,其他僞客戶使用的Web服務 - 當然這取決於產品的功能和能力。不幸的是,移動應用程序世界充滿了黑客破解設備上的黑客。然而,如果偶然的話你可以利用這些客戶,那麼服務就更好了! (例如,免費遊戲包含在您控制的服務器上存儲和驗證的高級購物)。對於這個說明,你也不能假設你的應用程序OAuth標記可以保證是安全的,OAUTH不是保證用戶的身份(因爲它們的標記可以被盜用),但是它可以很好地減少僞造用戶身份驗證,而無需先訪問該用戶帳戶。

祝你好運!

+0

感謝Andrew的快速響應。你的意思是使用基於REST的webservice和JSON響應格式?如果我大多數時間不需要認證用戶,該怎麼辦? – user1943238

+0

嗨,是的基於REST的通信與JSON請求和響應格式(你可能希望你的客戶端上傳結構的請求,因爲它可以更容易 - 爲此,你會使用POST和setRawRequestBody語言相關)。 –

+0

關於身份驗證,如果你不把任何形式的擔保你的web服務,然後就變得非常容易使用他人和客戶端。這可能是你想要的。 OAUTH可以以兩種方式使用,消費者簽名對於簡單的安全性來說很好,證明對應用程序數據的訪問,而用戶+消費者簽名用於基於用戶的身份驗證,從而提供對某人賬戶的訪問。 作爲Web服務通常花錢跑,我建議把簡單的身份驗證您的服務,以幫助您控制成本。 但是,這完全是您的選擇。 –