学习笔记自存,希望也能对您有所帮助,欢迎大神批评指教。
官方文档:Tutorial: Developing a RESTful API with Go and Gin - The Go Programming Language
net/http
足够简单,性能也非常不错本文主要内容以Go官方文档为主,抽取出使用Gin框架编写API的最简单的基础方法。
简单的说,就是利用HTTP中的四种不同的请求方式表示对相同资源的不同操作
文档中的例子是使用Gin编写三个API完成对条目(爵士唱片)的查询和条目增加操作。
代码逻辑比较简单,因此不再重复具体代码,重点在于理解使用Gin写API的过程。总结为以下三点:
下面只利用其中一个API说明该过程。
发送GET /albums 返回所有条目
// 定义结构体
type album struct {
ID string `json:"id"` // `json:"xxx"`指明了该属性在json中序列化后的字段名,若未指定序列化时使用结构体中的属性名
Title string `json:"title"`
Artist string `json:"artist"`
Price float64 `json:"price"`
}
// 声明并初始化变量(资源)
var albums = []album{
{ID: "1", Title: "Blue Train", Artist: "John Coltrane", Price: 56.99},
{ID: "2", Title: "Jeru", Artist: "Gerry Mulligan", Price: 17.99},
{ID: "3", Title: "Sarah Vaughan and Clifford Brown", Artist: "Sarah Vaughan", Price: 39.99},
}
// 返回所有条目序列化成JSON
func getAlbums(c *gin.Context) {
c.IndentedJSON(http.StatusOK, albums)
}
func main() {
router := gin.Default()
router.GET("/albums", getAlbums) // {URI : "/albums" , Method : "Get"} bind to function getAlbums
router.Run("localhost:8080")
}
简单的总结了一下使用Gin开发RESTful API的基本套路。如果感觉这种偏应用层面的东西在初始学习中简单了解一下概念和最简单的使用即可,真要加深理解还得是在真实项目开发中学习。到时候用到了再去查文档、博客更高效。