67 lines
1.8 KiB
Go
67 lines
1.8 KiB
Go
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)
|
||
RegisterCallbackAPI("/message/TestCallback", "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{"消息回调"},
|
||
}
|
||
}
|