package?main
import?(
???"net/http"
???"gocode/BlockChain/core"
???"encoding/json"
???"io"
)
var?blockchain?*core.Blockchain
func?run(){
???//獲取鏈上的數據
???http.HandleFunc("/blockchain/get",?blockchainGetHandler)
???//寫數據到鏈上
???http.HandleFunc("/blockchain/write",?blockchainWriteHandler)
????//啟動對端口的監聽
????http.ListenAndServe("localhost:8888",?nil)
????}
//獲取鏈上的數據
func?blockchainGetHandler(w?http.ResponseWriter,?r?*http.Request){
???//轉化為json數據格式
???bytes,?error?:=?json.Marshal(blockchain)
???//如果erroe不為空
???if?error?!=?nil?{
??????http.Error(w,?error.Error(),?http.StatusInternalServerError)
??????return
???}
???io.WriteString(w,?string(bytes))
}
//往區塊鏈上寫數據
func?blockchainWriteHandler(w?http.ResponseWriter,?r?*http.Request){
???blockData?:=?r.URL.Query().Get("data")
???//發送數據
???blockchain.SendData(blockData)
???//把最新的區塊鏈數據會顯給調用者
???blockchainGetHandler(w,?r)
}
//啟動之后訪問:?http://localhost:8888/blockchain/get
//添加數據到區塊鏈:?http://localhost:8888/blockchain/write?data=hello?world
func?main()?{
???//創建一個blockchain
???blockchain?=?core.NewBlockchain()
???run()
}
2018-08-11
這里只是沒有加校驗而已,如果加判斷data沒有值就會返回錯誤信息