HTTP Method
首先,一个接口应当只做一件事情,HTTP Method是有意义的(例如RESTful接口风格设计),一个接口支持多种HTTP Method方式通常是接口设计不合理,建议重新审视接口设计。
RESTful
通常是不存在一个API需要绑定多个HTTP Method的场景的。例如,拿用户接口来讲,一个CURD接口在RESTful实现应当有4-5个API定义,实现不同的业务逻辑。那么可能存在以下API定义的RESTful接口:
API
CURD
4-5
接口名称 Method Path 创建用户 PUT /user 用户列表 GET /user 用户详情 GET /user/{uid} 修改用户 POST /user/{uid} 删除用户 DELETE /user/{uid}
如果确实存在一个接口支持多个HTTP Method的场景,那么可以通过在Meta标签中的method属性中使用英文,号分隔各个HTTP Method即可,例如:
Meta
method
,
type SaveReq struct { g.Meta `path:"/user/{uid}" method:"put,post" summary:"保存用户" tags:"用户管理"` Uid int64 `dc:"用户ID"` Name string `dc:"用户名"` // ... }
Response
Data
使用类型别名即可。
源码地址:gf/example/httpserver/response-with-json-array at master · gogf/gf (github.com)
结果示例:
各位老师,有个场景请教一下:前端post传过来的是这样的json: [ {"a": 1, "b": 2},
{"a": 3, "b": 4}]1. 这种情况下规范路由的req应该怎么定义呢2.这种算是规范的json吗,如果不是规范的,那么感觉也用不了规范路由,看了下规范路由使用方式卡的有点死,不过为了规范也挺正常,现在是为了兼容以前的情况,传过来的值的格式不能改。
1 Comment
GreenHatHG
各位老师,有个场景请教一下:
前端post传过来的是这样的json: [
{"a": 1, "b": 2},
{"a": 3, "b": 4}
]
1. 这种情况下规范路由的req应该怎么定义呢
2.这种算是规范的json吗,如果不是规范的,那么感觉也用不了规范路由,看了下规范路由使用方式卡的有点死,不过为了规范也挺正常,现在是为了兼容以前的情况,传过来的值的格式不能改。