first commit
This commit is contained in:
65
api/swagger/callback.go
Normal file
65
api/swagger/callback.go
Normal file
@@ -0,0 +1,65 @@
|
||||
package swagger
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"xiawan/wx/api/req"
|
||||
)
|
||||
|
||||
// 为避免自动分析控制器失败,手动指定Swagger定义
|
||||
func init() {
|
||||
// 添加回调API的Swagger定义
|
||||
// 使用特殊的注册函数,确保这些API放在最前面
|
||||
RegisterCallbackAPI("/message/SetCallback", "post", "设置消息回调", req.MessageCallbackConfigModel{})
|
||||
RegisterCallbackAPI("/message/GetCallback", "get", "获取消息回调配置", nil)
|
||||
RegisterCallbackAPI("/message/DeleteCallback", "get", "删除消息回调配置", nil)
|
||||
|
||||
// 手动注册回调模型
|
||||
RegisterModel(req.MessageCallbackConfigModel{})
|
||||
RegisterModel(req.MessageCallbackPayload{})
|
||||
}
|
||||
|
||||
// RegisterCallbackAPI 注册回调API到Swagger文档并设置优先显示
|
||||
func RegisterCallbackAPI(path, method, summary string, model interface{}) {
|
||||
if manualAPIs[path] == nil {
|
||||
manualAPIs[path] = make(map[string]SwgMap)
|
||||
}
|
||||
|
||||
params := []SwgMap{
|
||||
{
|
||||
"in": "query",
|
||||
"name": "key",
|
||||
"type": "string",
|
||||
"description": "账号唯一标识",
|
||||
},
|
||||
}
|
||||
|
||||
// 如果模型不为空,添加请求体参数
|
||||
if model != nil {
|
||||
modelType := reflect.TypeOf(model)
|
||||
modelName := modelType.Name()
|
||||
if modelName == "" && modelType.Kind() == reflect.Ptr {
|
||||
modelName = modelType.Elem().Name()
|
||||
}
|
||||
|
||||
params = append(params, SwgMap{
|
||||
"in": "body",
|
||||
"name": "body",
|
||||
"description": "请求参数",
|
||||
"schema": SwgMap{
|
||||
"$ref": "#/definitions/" + modelName,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// 使用特殊的标签"消息回调"
|
||||
manualAPIs[path][method] = SwgMap{
|
||||
"summary": summary,
|
||||
"parameters": params,
|
||||
"responses": SwgMap{
|
||||
"200": SwgMap{
|
||||
"description": "",
|
||||
},
|
||||
},
|
||||
"tags": []string{"消息回调"},
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user