11 Star 11 Fork 0

Gitee 极速下载 / goa

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/goadesign/goa
克隆/下载
extensions.go 1.07 KB
一键复制 编辑 原始数据 按行查看 历史
Raphael Simon 提交于 2020-07-10 23:58 . OpenAPI v3 (v2) (#2608)
package openapi
import (
"encoding/json"
"strings"
"goa.design/goa/expr"
)
// ExtensionsFromExpr generates swagger extensions from the given meta
// expression.
func ExtensionsFromExpr(mdata expr.MetaExpr) map[string]interface{} {
return extensionsFromExprWithPrefix(mdata, "swagger:extension:")
}
// extensionsFromExprWithPrefix generates swagger extensions from
// the given meta expression with keys starting the given prefix.
func extensionsFromExprWithPrefix(mdata expr.MetaExpr, prefix string) map[string]interface{} {
if !strings.HasSuffix(prefix, ":") {
prefix += ":"
}
extensions := make(map[string]interface{})
for key, value := range mdata {
if !strings.HasPrefix(key, prefix) {
continue
}
name := key[len(prefix):]
if strings.Contains(name, ":") {
continue
}
if !strings.HasPrefix(name, "x-") {
continue
}
val := value[0]
ival := interface{}(val)
if err := json.Unmarshal([]byte(val), &ival); err != nil {
extensions[name] = val
continue
}
extensions[name] = ival
}
if len(extensions) == 0 {
return nil
}
return extensions
}
1
https://gitee.com/mirrors/goa.git
git@gitee.com:mirrors/goa.git
mirrors
goa
goa
v2.2.5

搜索帮助

53164aa7 5694891 3bd8fe86 5694891