REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”或“表现层状态转化”。

    简单来说,REST的含义就是客户端与Web服务器之间进行交互的时候,使用HTTP协议中的4个请求方法代表不同的动作。

    • GET 用来获取资源
    • POST 用来新建资源
    • PUT 用来更新资源
    • DELETE 用来删除资源。


    只要API程序遵循了REST风格,那就可以称其为RESTful API。目前在前后端分离的架构中,前后端基本都是通过RESTful API来进行交互。

    例如,我们现在要编写一个管理书籍的系统,我们可以查询对一本书进行查询、创建、更新和删除等操作,我们在编写程序的时候就要设计客户端浏览器与我们Web服务端交互的方式和路径。按照经验我们通常会设计成如下模式:

    请求方法 URL 含义
    GET /book 查询书籍信息
    POST /create_book 创建书籍记录
    POST /update_book 更新书籍信息
    POST /delete_book 删除书籍信息

    同样的需求我们按照RESTful API设计如下:

    请求方法 URL 含义
    GET /book 查询书籍信息
    POST /book 创建书籍记录
    PUT /book 更新书籍信息
    DELETE /book 删除书籍信息

    使用Gin框架,来开发RESTful风格的API

    1. func main() {
    2. r := gin.Default()
    3. r.GET("/book", func(c *gin.Context) {
    4. c.JSON(200, gin.H{
    5. "message": "GET",
    6. })
    7. })
    8. r.POST("/book", func(c *gin.Context) {
    9. c.JSON(200, gin.H{
    10. "message": "POST",
    11. })
    12. })
    13. r.PUT("/book", func(c *gin.Context) {
    14. c.JSON(200, gin.H{
    15. "message": "PUT",
    16. })
    17. })
    18. r.DELETE("/book", func(c *gin.Context) {
    19. c.JSON(200, gin.H{
    20. "message": "DELETE",
    21. })
    22. })
    23. }