Files
wechat_ipad_pro/api/swagger/callback.go

67 lines
1.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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{"消息回调"},
}
}