路漫漫其修远兮
吾将上下而求索

go学习:restful规范定义

经过几次接口编写,发下下面的规范比较合适,url和路径没有异议,定义为以下

返回形式有两种:
1、返回http状态码统一为200,具体查看body中的code。code为200,忽略msg,具体查看data字段,里面有list和count字段。code为非200,具体错误见msg
当出现错误时:code是400-499中一个数字,代表不同的错误意思

[GIN-debug] GET    /api/v1/users/:user_id/tags              --> gin-blog/routers/api/v1.GetTags (3 handlers)   列出所有tag的列表
[GIN-debug] GET    /api/v1/users/:user_id/tags/:tag_id      --> gin-blog/routers/api/v1.GetTags (3 handlers)   列出单个tag详情
[GIN-debug] POST   /api/v1/users/:user_id/tags              --> gin-blog/routers/api/v1.AddTag (3 handlers)    创建单个tag对象
[GIN-debug] PUT    /api/v1/users/:user_id/tags/:tag_id      --> gin-blog/routers/api/v1.EditTag (3 handlers)   更新单个tag对象
[GIN-debug] DELETE /api/v1/users/:user_id/tags/:tag_id      --> gin-blog/routers/api/v1.DeleteTag (3 handlers) 删除单个tag对象


{
    "code":200,
    "data":[
        {
            "id":1,
            "created_on":0,
            "modified_on":0,
            "name":"andy",
            "created_by":"",
            "modified_by":"",
            "state":1
        },
        {
            "id":2,
            "created_on":0,
            "modified_on":0,
            "name":"bob",
            "created_by":"",
            "modified_by":"",
            "state":1
        }
    ],
    "count":16,
    "msg":"ok"
}



2、body部分没有code字段。http状态码返回200,忽略msg,具体查看data和count字段,data字段可以为list,也可以为dict。http状态码返回400,具体错误见msg

[GIN-debug] GET    /api/v1/users/:user_id/tags              --> gin-blog/routers/api/v1.GetTags (3 handlers)   列出所有tag的列表
[GIN-debug] GET    /api/v1/users/:user_id/tags/:tag_id      --> gin-blog/routers/api/v1.GetTags (3 handlers)   列出单个tag详情
[GIN-debug] POST   /api/v1/users/:user_id/tags              --> gin-blog/routers/api/v1.AddTag (3 handlers)    创建单个tag对象
[GIN-debug] PUT    /api/v1/users/:user_id/tags/:tag_id      --> gin-blog/routers/api/v1.EditTag (3 handlers)   更新单个tag对象
[GIN-debug] DELETE /api/v1/users/:user_id/tags/:tag_id      --> gin-blog/routers/api/v1.DeleteTag (3 handlers) 删除单个tag对象


{
    "data":[
        {
            "id":1,
            "created_on":0,
            "modified_on":0,
            "name":"andy",
            "created_by":"",
            "modified_by":"",
            "state":1
        },
        {
            "id":2,
            "created_on":0,
            "modified_on":0,
            "name":"bob",
            "created_by":"",
            "modified_by":"",
            "state":1
        }
    ],
    "count":16,
    "msg":"ok"
}

更倾向于使用第二种,简单明了,没有多余的东西

参考:https://book.eddycjy.com/golang/gin/api-02.html

未经允许不得转载:江哥架构师笔记 » go学习:restful规范定义

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址