本文整理汇总了Golang中github.com/go-swagger/go-swagger/spec.Document.BasePath方法的典型用法代码示例。如果您正苦于以下问题:Golang Document.BasePath方法的具体用法?Golang Document.BasePath怎么用?Golang Document.BasePath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/go-swagger/go-swagger/spec.Document
的用法示例。
在下文中一共展示了Document.BasePath方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: New
// New creates a new default runtime for a swagger api client.
func New(swaggerSpec *spec.Document) *Runtime {
var rt Runtime
rt.DefaultMediaType = httpkit.JSONMime
// TODO: actually infer this stuff from the spec
rt.Consumers = map[string]httpkit.Consumer{
httpkit.JSONMime: httpkit.JSONConsumer(),
}
rt.Producers = map[string]httpkit.Producer{
httpkit.JSONMime: httpkit.JSONProducer(),
}
rt.Spec = swaggerSpec
rt.Transport = http.DefaultTransport
rt.client = http.DefaultClient
rt.client.Transport = rt.Transport
rt.Host = swaggerSpec.Host()
rt.BasePath = swaggerSpec.BasePath()
schemes := swaggerSpec.Spec().Schemes
if len(schemes) == 0 {
schemes = append(schemes, "http")
}
rt.methodsAndPaths = make(map[string]methodAndPath)
for mth, pathItem := range rt.Spec.Operations() {
for pth, op := range pathItem {
if len(op.Schemes) > 0 {
rt.methodsAndPaths[op.ID] = methodAndPath{mth, pth, op.Schemes}
} else {
rt.methodsAndPaths[op.ID] = methodAndPath{mth, pth, schemes}
}
}
}
return &rt
}
示例2: AddSwaggerRoutes
func AddSwaggerRoutes(doc *spec.Document) {
for path, pathItem := range doc.AllPaths() {
path = doc.BasePath() + deCurly(path)
// TODO may be something usable here?
// if extension, ok := pathItem.Extensions.GetString("x-revel-controller"); ok { }
if pathItem.Head != nil {
if action, ok := pathItem.Head.Extensions.GetString(X_REVEL_CONTROLLER_ACTION); ok {
_fail(addRoute(action, "HEAD", path))
}
}
if pathItem.Get != nil {
if action, ok := pathItem.Get.Extensions.GetString(X_REVEL_CONTROLLER_ACTION); ok {
_fail(addRoute(action, "GET", path))
}
}
if pathItem.Post != nil {
if action, ok := pathItem.Post.Extensions.GetString(X_REVEL_CONTROLLER_ACTION); ok {
_fail(addRoute(action, "POST", path))
}
}
if pathItem.Put != nil {
if action, ok := pathItem.Put.Extensions.GetString(X_REVEL_CONTROLLER_ACTION); ok {
_fail(addRoute(action, "PUT", path))
}
}
if pathItem.Delete != nil {
if action, ok := pathItem.Delete.Extensions.GetString(X_REVEL_CONTROLLER_ACTION); ok {
_fail(addRoute(action, "DELETE", path))
}
}
if pathItem.Patch != nil {
if action, ok := pathItem.Patch.Extensions.GetString(X_REVEL_CONTROLLER_ACTION); ok {
_fail(addRoute(action, "PATCH", path))
}
}
if pathItem.Options != nil {
if action, ok := pathItem.Options.Extensions.GetString("x-revel-controller-action"); ok {
_fail(addRoute(action, "OPTIONS", path))
}
}
}
}
示例3: New
// New creates a new default runtime for a swagger api client.
func New(swaggerSpec *spec.Document) *Runtime {
var rt Runtime
rt.DefaultMediaType = httpkit.JSONMime
rt.Consumers = map[string]httpkit.Consumer{
httpkit.JSONMime: httpkit.JSONConsumer(),
}
rt.Producers = map[string]httpkit.Producer{
httpkit.JSONMime: httpkit.JSONProducer(),
}
rt.Spec = swaggerSpec
rt.Transport = http.DefaultTransport
rt.client = http.DefaultClient
rt.Host = swaggerSpec.Host()
rt.BasePath = swaggerSpec.BasePath()
rt.methodsAndPaths = make(map[string]methodAndPath)
for mth, pathItem := range rt.Spec.Operations() {
for pth, op := range pathItem {
rt.methodsAndPaths[op.ID] = methodAndPath{mth, pth}
}
}
return &rt
}
示例4: New
// New creates a new default runtime for a swagger api client.
func New(swaggerSpec *spec.Document) *Runtime {
var rt Runtime
rt.DefaultMediaType = httpkit.JSONMime
// TODO: actually infer this stuff from the spec
rt.Consumers = map[string]httpkit.Consumer{
httpkit.JSONMime: httpkit.JSONConsumer(),
}
rt.Producers = map[string]httpkit.Producer{
httpkit.JSONMime: httpkit.JSONProducer(),
}
rt.Spec = swaggerSpec
rt.Transport = http.DefaultTransport
rt.client = http.DefaultClient
rt.client.Transport = rt.Transport
rt.Host = swaggerSpec.Host()
rt.BasePath = swaggerSpec.BasePath()
if !strings.HasPrefix(rt.BasePath, "/") {
rt.BasePath = "/" + rt.BasePath
}
rt.Debug = os.Getenv("DEBUG") == "1"
schemes := swaggerSpec.Spec().Schemes
if len(schemes) == 0 {
schemes = append(schemes, "http")
}
rt.methodsAndPaths = make(map[string]methodAndPath)
for mth, pathItem := range rt.Spec.Operations() {
for pth, op := range pathItem {
nm := ensureUniqueName(op.ID, mth, pth, rt.methodsAndPaths)
op.ID = nm
if len(op.Schemes) > 0 {
rt.methodsAndPaths[nm] = methodAndPath{mth, pth, op.Schemes}
} else {
rt.methodsAndPaths[nm] = methodAndPath{mth, pth, schemes}
}
}
}
return &rt
}