2016-06-01 74 views
0

創建Web服務時需要考慮的各種參數是什麼,這些參數會將糟糕的Web服務變爲可擴展的Web服務?我認爲更大的服務器和調優應該是一條路。但我不知道應該考慮哪些調整因素。如何構建可伸縮的Web服務

回答

0

1:不要找一個官方的 「REST標準」

REST Web服務是一個概念,而不是一個標準。沒有要求您的REST Web服務以任何特定方式工作。與此同時,雖然...

2:堅持標準,反正

...您的REST Web服務應堅持至少一些標準!例如,用於身份驗證的OAuth,用於數據的JSON和XML,用於傳輸和控制本身的HTTP以及URI標準。如果你想要一個更完整的包裝,OData可以作爲一個更大的物品。僅僅因爲沒有人說「REST必須遵守這些標準」並不意味着你應該自己編寫。

3:確保你的文檔是完美無瑕

隨着SOAP,還有就是Web服務定義語言(WSDL)系統,這使得它很容易與服務工作,如果你有一個工具來自動根據WSDL生成代碼。但是對於REST,服務的定義不太嚴格,並且依賴於被正確調用才能正確工作。這意味着服務文檔至關重要。確保如果您正在創建REST Web服務,該文檔是100%正確的。

4:提供JSON輸出

JSON標準已迅速成爲網絡上很重要的。起初,這很方便,因爲它允許JavaScript輕鬆使用Web服務輸出,並且只需最少的編碼。現在有很多庫允許服務器端和本機客戶端代碼使用JSON。

5:不要忘記XML

說到輸出,XML輸出仍然是重要的,因爲它一直是。爲什麼同時支持XML和JSON?因爲不是每個系統都可以使用JSON,但是如果系統可以進行Web服務調用,它將提供XML處理規定。例如,那裏有一堆遺留系統,它們使用XML而不使用JSON,並非所有開發人員都想開始混合並匹配JSON和XML。確保你的服務支持這兩種格式。 HTTP請求中的「接受」標頭是一種很好的方式,而不是有一個參數或不同的服務URL。

6:理解動詞

之一在REST Web服務的關鍵概念是,功能是在由HTTP協議定義很大一部分。而其中最基本的部分是HTTP動作動詞,如GET和POST。儘管在REST中很好理解了基本功能,但是一些想法,例如使用PATCH來更新實體的特定屬性而不是整個實體,仍然不斷涌現。

7:瞭解URI的路由

RESTful Web服務在很大程度上取決於對URI來決定做什麼的重要性。例如,在「GET」請求中,URI路徑通常包含要檢索的實體的主鍵值(或其他標識符)。例如,「http://www.example.com/service/entityname/76」將檢索名稱爲「entityname」且主鍵值爲76的實體。對於REST Web服務,URI不僅是訪問服務的手段,而且是控制它和信號的一種方式您的需求。

8:無版本的服務

這將是誘人的,因爲你做出改變,以保持只有一個版本的服務,不要做出改變。不要這樣做!確保每次發佈更改時都保持獨立的版本。這樣做的最簡單,最常用的方法是將URI的版本號作爲服務的一部分,通常在路徑的一部分中。人們需要的最後一件事是讓服務的功能在沒有警告的情況下改變。

9:保持聯繫與您的用戶

由於缺乏自動發現的,它是你留在你的用戶和消費者聯繫更爲重要。例如,當您發佈新版本的服務時,應該向用戶發送一封電子郵件,讓他們知道該服務,並提供有關棄用舊版服務的信息。

10:提供樣品代碼

一個你能做的最好的事情是爲開發者提供使用的示例代碼。確保您的代碼至少爲所有主要語言或運行時提供:Java,.NET,JavaScript,Ruby和Python。如果你必須聘請顧問把這些代碼放在一起,因爲這對於你的服務的採用是絕對至關重要的。確保您的授權示例代碼的方式可以讓您的客戶無後顧之憂地使用它,例如MIT或BSD許可證。

+0

謝謝,我想知道如何確保Web服務可以擴展? – noobCoder

+0

您的問題可能會解決此鏈接https://www.w3.org/2001/03/WSWS-popa/paper33 – Archish