要弄清楚什么是RESTful API,首先要知道REST是什么
REST是Representational State Transfer的簡稱,中文翻譯為“表征狀態(tài)轉(zhuǎn)移”或“表現(xiàn)層狀態(tài)轉(zhuǎn)化”
簡單來說,REST的含義就是客戶端與Web服務(wù)器之間進(jìn)行交互的時候,使用HTTP協(xié)議中的4個請求方法代表不同的動作
只要API程序遵循了REST風(fēng)格,那就可以稱其為RESTful API。目前在前后端分離的架構(gòu)中,前后端基本都是通過RESTful API來進(jìn)行交互
例如,我們現(xiàn)在要編寫一個學(xué)生管理系統(tǒng),我們可以對一個學(xué)生進(jìn)行查詢、創(chuàng)建、更新和刪除等操作,我們在編寫程序的時候就要設(shè)計(jì)客戶端瀏覽器與我們Web服務(wù)端交互的方式和路徑。按照RESTful API我們通常會設(shè)計(jì)成如下模式:
請求方法 | URL | 含義 |
---|---|---|
GET | /student | 查詢學(xué)生信息 |
POST | /create_student | 創(chuàng)建學(xué)生信息 |
PUT | /updata_student | 更新學(xué)生信息 |
DELETE | /delete_student | 刪除學(xué)生信息 |
Gin框架支持RESTful API的開發(fā),代碼如下
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/student", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "查詢學(xué)生信息成功",
})
})
r.POST("/create_student", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "創(chuàng)建學(xué)生信息成功",
})
})
r.PUT("/updata_student", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "更新學(xué)生信息成功",
})
})
r.DELETE("/delete_student", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "刪除學(xué)生信息成功",
})
})
r.Run()
}
開發(fā)RESTful API的時候我們通常使用postman來做為客戶端的測試工具
結(jié)果如下
更多建議: