剛剛開始接觸Fabric穿香,先從書上例子入手,之后又想模仿著做一個(gè)自己的應(yīng)用绎速,以前接觸過Vue皮获,想著前后分離方案,后端只提供api纹冤,前端老老實(shí)實(shí)負(fù)責(zé)展示
現(xiàn)有的樣例是模板渲染方案洒宝,我在此基礎(chǔ)上更換了接口,使用Gin框架進(jìn)行api編寫(ps:beego玩不轉(zhuǎn)赵哲,controllers那里不知道怎樣改才能傳入實(shí)例化的chainapp對(duì)象待德。。)
Gin與原生net/http相比友好了許多枫夺,但有給了使用者自己的空間發(fā)揮
參考文檔:https://www.yoytang.com/go-gin-doc.html
show me the code
package api
import (
"github.com/gin-gonic/gin"
"net/http"
"github.com/myfirstapp/service"
)
type Application struct {
Fabric *service.ServiceSetup
}
func WebStart(app *Application) {
// 初始化引擎
engine := gin.Default()
// 注冊一個(gè)路由和處理函數(shù)
engine.POST("/getinfo", app.GetInfo)
engine.POST("/setinfo", app.SetInfo)
// 綁定端口,然后啟動(dòng)應(yīng)用
engine.Run(":9205")
}
func (app *Application) GetInfo(context *gin.Context) {
name := context.PostForm("name")
msg, err := app.Fabric.GetInfo(name)
if err != nil {
context.JSON(http.StatusBadRequest, gin.H{
"name": name,
})
}else{
context.JSON(http.StatusOK, gin.H{
"msg": msg,
})
}
}
func (app *Application) SetInfo(context *gin.Context) {
name := context.PostForm("name")
num := context.PostForm("num")
transactionID, err := app.Fabric.SetInfo(name, num)
if err != nil {
context.JSON(http.StatusBadRequest, gin.H{
"status": "something wrong...",
})
}else{
context.JSON(http.StatusOK, gin.H{
"msg": transactionID,
})
}
}
在頂層main中添加
app := api.Application{
Fabric: &serviceSetup,
}
api.WebStart(&app)
啟動(dòng)區(qū)塊鏈應(yīng)用绘闷,postman測試
返回交易ID(注意提交格式)
完成O鹋印!