Api编写
1> Gin框架的Api返回的数据格式有json,xml,yaml这三种格式。其中yaml这种格式是一种特殊的数据格式。(本人暂时没有实现获取节点值得操作)
2> 在apis文件夹下,新建一个data.go文件,作为获取api数据的业务逻辑代码.具体代码如下:
package apis import ( "net/http" "github.com/gin-gonic/gin" . "GinLearn/GinLearn/models" ) //Api调用的页面 func GetApiHtml(c *gin.Context){ c.HTML(http.StatusOK,"api.html",gin.H{ "title":"Go-Gin Api调用页面", }) } //Json格式的数据 func GetJsonData(c *gin.Context) { //得到请求的参数 search:=c.PostForm("search") //得到用户的数据 datalist:=GetPersonList(1,10,search) //得到记录的总数 count:=GetRecordNum(search) //返回结果 c.JSON(http.StatusOK, gin.H{ "datalist": datalist, "count":count, "pagesize":3, "pageno":1, }) } //Xml格式的数据 func GetXmlData(c *gin.Context) { //得到请求的参数 search:=c.PostForm("search") //得到用户的数据 datalist:=GetPersonList(1,10,search) //得到记录的总数 count:=GetRecordNum(search) //返回结果 c.XML(http.StatusOK, gin.H{ "datalist": datalist, "count":count, "pagesize":3, "pageno":1, }) } //Xml格式的数据 func GetYamlData(c *gin.Context) { //得到请求的参数 search:=c.PostForm("search") //得到用户的数据 datalist:=GetPersonList(1,10,search) //得到记录的总数 count:=GetRecordNum(search) //返回结果 c.YAML(http.StatusOK, gin.H{ "datalist": datalist, "count":count, "pagesize":3, "pageno":1, }) } //Json格式的数据 func GetParamsJsonData(c *gin.Context) { //得到请求的参数 search:=c.PostForm("search") //得到用户的数据 datalist:=GetPersonList(1,10,search) //得到记录的总数 count:=GetRecordNum(search) //返回结果 c.JSON(http.StatusOK, gin.H{ "datalist": datalist, "count":count, "pagesize":3, "pageno":1, "search":search, }) }
3> 在views文件夹下新建一个api.html页面作为测试获取api数据的展示页面.具体代码如下:
<!DOCTYPE html> <html> <head> <title>{{.title}}</title> <link rel="shortcut icon" href="/static/img/favicon.png" /> <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css"/> <script type="text/java script" src="/static/js/jquery-2.1.1.min.js"></script> <script type="text/java script" src="/static/bootstrap/js/bootstrap.min.js"></script> </head> <body> <div class="container"> <!--请求得到字典数据--> <div style="width:100%;height:50px;"> <input type="text" id="search" placeholder="请输入参数"/> <button onclick="getparams()" class="btn btn-primary">得到参数</button> <label id="txtparams"></label> &