https://github.com/astaxie/build-web-application-with-golangWeb服務
Web服務在HTTP協議的基礎上通過XML或者JSON格式來交換資訊。
如果你想知道上海的天氣預報、中國石油的股價或者淘寶商家的一個商品資訊,你可以編寫一段簡短的代碼,通過抓取這些資訊然後通過標準的介面開放出來,就如同你調用一個本地函數並返回一個值。
Web服務背後的關鍵在於平臺的無關性,你可以運行你的服務在Linux系統,可以與其他Windows的asp.net程式交互,同樣的,也可以通過同一個介面和運行在FreeBSD上面的JSP無障礙地通信。
目前主流的有如下幾種Web服務:REST、SOAP。
REST請求是很直觀的,因為REST是基於HTTP協議的一個補充,他的每一次請求都是一個HTTP請求,然後根據不同的method來處理不同的邏輯,很多Web開發者都熟悉HTTP協議,所以學習REST是一件比較容易的事情。所以我們在8.3小節將詳細的講解如何在Go語言中來實現REST方式。
SOAP是W3C在跨網路資訊傳遞和遠端電腦函式呼叫方面的一個標準。但是SOAP非常複雜,其完整的規範篇幅很長,而且內容仍然在增加。Go語言是以簡單著稱,所以我們不會介紹SOAP這樣複雜的東西。而Go語言提供了一種天生性能很不錯,開發起來很方便的RPC機制,我們將會在8.4小節詳細介紹如何使用Go語言來實現RPC。
Go語言是21世紀的C語言,我們追求的是性能、簡單,所以我們在8.1小節裡面介紹如何使用Socket程式設計,很多遊戲服務都是採用Socket來編寫服務端,因為HTTP協定相對而言比較耗費性能,讓我們看看Go語言如何來Socket程式設計。目前隨著HTML5的發展,webSockets也逐漸的成為很多頁遊公司接下來開發的一些手段,我們將在8.2小節裡面講解Go語言如何編寫webSockets的代碼。