本文整理汇总了Golang中github.com/go-swagger/go-swagger/spec.Response.Ref方法的典型用法代码示例。如果您正苦于以下问题:Golang Response.Ref方法的具体用法?Golang Response.Ref怎么用?Golang Response.Ref使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/go-swagger/go-swagger/spec.Response
的用法示例。
在下文中一共展示了Response.Ref方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: generateOperation
func (g *Generator) generateOperation(b *descriptor.Binding) *spec.Operation {
response := new(spec.Response)
responses := new(spec.Responses)
op := new(spec.Operation)
op.Tags = make([]string, 0)
op.Parameters = make([]spec.Parameter, 0)
op.ID = strings.ToLower(b.Method.GetName())
// op.Consumes = []string{"application/x-www-form-urlencoded", "application/json", "application/x-protobuf"}
// op.Produces = []string{"application/json", "application/x-protobuf"}
if cmt := g.file.GetCommentText(b.Method.CommentPath); cmt != nil {
// TODO(ceram1): Cut by newline to extract summary, like golang.
op.Summary = *cmt
_ = strings.Index(*cmt, "\n\n") // idx to cut comment.
op.Description = *cmt
}
for _, param := range b.PathParams {
p := g.generatePathParameter(¶m)
op.Parameters = append(op.Parameters, *p)
}
response.Ref = messageRef(b.Method.ResponseType)
responses.Default = response
op.Responses = responses
return op
}
示例2: Parse
func (ss *setOpResponses) Parse(lines []string) error {
if len(lines) == 0 || (len(lines) == 1 && len(lines[0]) == 0) {
return nil
}
var def *spec.Response
var scr map[int]spec.Response
for _, line := range lines {
kv := strings.SplitN(line, ":", 2)
var key, value string
if len(kv) > 1 {
key = strings.TrimSpace(kv[0])
if key == "" {
// this must be some weird empty line
continue
}
value = strings.TrimSpace(kv[1])
if value == "" {
var resp spec.Response
if strings.EqualFold("default", key) {
if def == nil {
def = &resp
}
} else {
if sc, err := strconv.Atoi(key); err == nil {
if scr == nil {
scr = make(map[int]spec.Response)
}
scr[sc] = resp
}
}
continue
}
var arrays int
for strings.HasPrefix(value, "[]") {
arrays++
value = value[2:]
}
var isDefinitionRef bool
var ref spec.Ref
var err error
if arrays == 0 {
ref, err = spec.NewRef("#/responses/" + value)
} else {
isDefinitionRef = true
ref, err = spec.NewRef("#/definitions/" + value)
}
if _, ok := ss.responses[value]; !ok {
if _, ok := ss.definitions[value]; ok {
isDefinitionRef = true
ref, err = spec.NewRef("#/definitions/" + value)
}
} else {
}
if err != nil {
return err
}
var resp spec.Response
if !isDefinitionRef {
resp.Ref = ref
} else {
resp.Schema = new(spec.Schema)
if arrays == 0 {
resp.Schema.Ref = ref
} else {
cs := resp.Schema
for i := 0; i < arrays; i++ {
cs.Typed("array", "")
cs.Items = new(spec.SchemaOrArray)
cs.Items.Schema = new(spec.Schema)
cs = cs.Items.Schema
}
cs.Ref = ref
}
}
if strings.EqualFold("default", key) {
if def == nil {
def = &resp
}
} else {
if sc, err := strconv.Atoi(key); err == nil {
if scr == nil {
scr = make(map[int]spec.Response)
}
scr[sc] = resp
}
}
}
}
ss.set(def, scr)
return nil
}