11 Star 11 Fork 0

Gitee 极速下载/goa

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/goadesign/goa
克隆/下载
response.go 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
Raphael Simon 提交于 2020-07-10 23:58 . OpenAPI v3 (v2) (#2608)
package openapiv3
import (
"goa.design/goa/expr"
"goa.design/goa/http/codegen/openapi"
)
func responseFromExpr(r *expr.HTTPResponseExpr, bodies map[int][]*openapi.Schema, rand *expr.Random) *Response {
ct := r.ContentType
rt, ok := r.Body.Type.(*expr.ResultTypeExpr)
if ok && ct == "" {
ct = rt.ContentType
}
if ct == "" {
// Default to application/json
ct = "application/json"
}
var headers map[string]*HeaderRef
o := expr.AsObject(r.Headers.Type)
if len(*o) > 0 {
headers = make(map[string]*HeaderRef, len(*o))
expr.WalkMappedAttr(r.Headers, func(name, elem string, attr *expr.AttributeExpr) error {
headers[elem] = &HeaderRef{Value: &Header{
Description: attr.Description,
Required: r.Headers.IsRequiredNoDefault(name),
Schema: newSchemafier(rand).schemafy(attr),
Example: attr.Example(rand),
Extensions: openapi.ExtensionsFromExpr(attr.Meta),
}}
return nil
})
}
mt := &MediaType{
Schema: bodies[r.StatusCode][0],
Example: r.Body.Example(rand),
Extensions: openapi.ExtensionsFromExpr(r.Body.Meta),
}
return &Response{
Description: &r.Description,
Headers: headers,
Content: map[string]*MediaType{ct: mt},
Extensions: openapi.ExtensionsFromExpr(r.Meta),
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mirrors/goa.git
git@gitee.com:mirrors/goa.git
mirrors
goa
goa
v2.2.0

搜索帮助