Files
weave-scope/vendor/github.com/marccarre/go-restful-openapi/build_definitions.go
Marc Carré ded7717c94 Switch from emicklei/go-restful-openapi to marccarre/go-restful-openapi
In order to remove dependencies on `Sirupsen/logrus` while emicklei/go-restful-openapi/pull/49 is getting reviewed and, hopefully, merged:
```
$ gvt delete github.com/emicklei/go-restful-openapi
$ gvt fetch --branch lowercase-sirupsen --revision 129557de7d9f2d2ca4a90cd31c379db90a561ad8 github.com/marccarre/go-restful-openapi
2018/07/23 15:50:36 Fetching: github.com/marccarre/go-restful-openapi
2018/07/23 15:50:38 · Skipping (existing): github.com/emicklei/go-restful
2018/07/23 15:50:38 · Skipping (existing): github.com/sirupsen/logrus
2018/07/23 15:50:38 · Skipping (existing): github.com/go-openapi/spec
2018/07/23 15:50:38 · Fetching recursive dependency: github.com/emicklei/go-restful-openapi
2018/07/23 15:50:40 ·· Skipping (existing): github.com/emicklei/go-restful
2018/07/23 15:50:40 ·· Fetching recursive dependency: github.com/Sirupsen/logrus
2018/07/23 15:50:43 ··· Skipping (existing): golang.org/x/sys/unix
2018/07/23 15:50:43 ··· Skipping (existing): golang.org/x/crypto/ssh/terminal
2018/07/23 15:50:43 ··· Skipping (existing): github.com/sirupsen/logrus
2018/07/23 15:50:43 ·· Skipping (existing): github.com/go-openapi/spec
```
2018-07-23 20:10:15 +02:00

33 lines
780 B
Go

package restfulspec
import (
"reflect"
restful "github.com/emicklei/go-restful"
"github.com/go-openapi/spec"
)
func buildDefinitions(ws *restful.WebService, cfg Config) (definitions spec.Definitions) {
definitions = spec.Definitions{}
for _, each := range ws.Routes() {
addDefinitionsFromRouteTo(each, cfg, definitions)
}
return
}
func addDefinitionsFromRouteTo(r restful.Route, cfg Config, d spec.Definitions) {
builder := definitionBuilder{Definitions: d, Config: cfg}
if r.ReadSample != nil {
builder.addModel(reflect.TypeOf(r.ReadSample), "")
}
if r.WriteSample != nil {
builder.addModel(reflect.TypeOf(r.WriteSample), "")
}
for _, v := range r.ResponseErrors {
if v.Model == nil {
continue
}
builder.addModel(reflect.TypeOf(v.Model), "")
}
}