构建API接口
什么是API
应用程序编程接口(API)是两个或多个计算机程序相互通信的一种方式。它是一种软件接口,为其他软件提供[服务描述如何构建或使用此类连接或接口的文档或标准称为API规范。
在网络开发过程中我们常用RESTful API来进行开发规范。
什么是RESTful API
REST
- REST,全名 Representational State Transfer (表现层状态转移),他是一种设计风格,一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。
RESTful
- RESTful 只是转为形容詞,就像那么 RESTful API 就是满足 REST 风格的,以此规范设计的 API。
RESTful API
- 我们常见的 API 一般都长这样子:
-
而 RESTful 风格的 API 却长这样子:
-
Uniform Interface(统一接口)
- 就像我们上面两幅图看到的 API,这是最直观的特征,是 REST 架构的核心,统一的接口对于 RESTful 服务非常重要。客户端只需要关注实现接口就可以,接口的可读性加强,使用人员方便调用。
- RESTful API 通过 URL 定位资源,并通过 HTTP 方法操作该资源,对资源的操作包括获取、创建、修改和删除,这些操作正好对应 HTTP 协议提供的 GET、POST、PUT 和 DELETE 方法。
GET:获取资源信息。
POST:创建一个新资源。
PUT:更新已有的资源。
DELETE:删除已有的资源。
- 在一个完全遵循 RESTful 的团队里,后端只需要告诉前端 /users 这个 API,前端就应该知道:
获取所有用户:GET /users
获取特定用户:GET /users/{id}
创建用户:POST /users
更新用户:PUT /users/{id}
删除用户:DELETE /users/{id}
- 当 API 数量非常多,系统非常复杂时,RESTful 的好处会越来越明显。理解系统时,可以直接围绕一系列资源来理解和记忆。
在gin中使用创建RESTful api接口
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
type User struct {
ID int64
Name string
}
func main() {
users := []User{
{ID: 1, Name: "lihua"},
{2, "lili"},
}
r := gin.Default()
r.GET("/users", func(context *gin.Context) {
context.JSON(http.StatusOK, users)
})
r.POST("/users", func(context *gin.Context) {
// 创建用户
})
r.DELETE("/users/1", func(context *gin.Context) {
// 删除id 为1的用户
})
r.PUT("/users/1", func(context *gin.Context) {
// 添加id 为1的用户
})
r.Run(":8080")
}
这就是一个简单的RESTful 风格的API接口