mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-18 04:49:55 +00:00
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 ```
33 lines
780 B
Go
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), "")
|
|
}
|
|
}
|