github.com/AngusLu/go-swagger@v0.28.0/generator/templates/client/facade.gotmpl (about)

     1  // Code generated by go-swagger; DO NOT EDIT.
     2  
     3  
     4  {{ if .Copyright -}}// {{ comment .Copyright -}}{{ end }}
     5  
     6  
     7  package {{ .Package }}
     8  
     9  // This file was generated by the swagger tool.
    10  // Editing this file might prove futile when you re-run the swagger generate command
    11  
    12  
    13  import (
    14    "net/http"
    15  
    16    "github.com/go-openapi/errors"
    17    "github.com/go-openapi/runtime"
    18    httptransport "github.com/go-openapi/runtime/client"
    19    "github.com/go-openapi/spec"
    20    "github.com/go-openapi/strfmt"
    21    "github.com/go-openapi/swag"
    22  
    23    {{ imports .DefaultImports }}
    24    {{ imports .Imports }}
    25  )
    26  
    27  // Default {{ humanize .Name }} HTTP client.
    28  var Default = NewHTTPClient(nil)
    29  
    30  const (
    31      // DefaultHost is the default Host
    32      // found in Meta (info) section of spec file
    33      DefaultHost string = {{ printf "%#v" .Host }}
    34      // DefaultBasePath is the default BasePath
    35      // found in Meta (info) section of spec file
    36      DefaultBasePath string = {{ printf "%#v" .BasePath }}
    37  )
    38  
    39  // DefaultSchemes are the default schemes found in Meta (info) section of spec file
    40  var DefaultSchemes = {{ printf "%#v" .Schemes }}
    41  
    42  // NewHTTPClient creates a new {{ humanize .Name }} HTTP client.
    43  func NewHTTPClient(formats strfmt.Registry) *{{ pascalize .Name }} {
    44    return NewHTTPClientWithConfig(formats, nil)
    45  }
    46  
    47  // NewHTTPClientWithConfig creates a new {{ humanize .Name }} HTTP client,
    48  // using a customizable transport config.
    49  func NewHTTPClientWithConfig(formats strfmt.Registry, cfg *TransportConfig) *{{ pascalize .Name }} {
    50    // ensure nullable parameters have default
    51    if cfg == nil {
    52      cfg = DefaultTransportConfig()
    53    }
    54  
    55    // create transport and client
    56    transport := httptransport.New(cfg.Host, cfg.BasePath, cfg.Schemes)
    57    return New(transport, formats)
    58  }
    59  
    60  // New creates a new {{ humanize .Name }} client
    61  func New(transport runtime.ClientTransport, formats strfmt.Registry) *{{ pascalize .Name }} {
    62    // ensure nullable parameters have default
    63    if formats == nil {
    64      formats = strfmt.Default
    65    }
    66  
    67    cli := new({{ pascalize .Name }})
    68    cli.Transport = transport
    69    {{- range .OperationGroups }}
    70    cli.{{ pascalize .Name }} = {{ .PackageAlias }}.New(transport, formats)
    71    {{- end }}
    72    return cli
    73  }
    74  
    75  // DefaultTransportConfig creates a TransportConfig with the
    76  // default settings taken from the meta section of the spec file.
    77  func DefaultTransportConfig() *TransportConfig {
    78      return &TransportConfig {
    79          Host: DefaultHost,
    80          BasePath: DefaultBasePath,
    81          Schemes: DefaultSchemes,
    82      }
    83  }
    84  
    85  // TransportConfig contains the transport related info,
    86  // found in the meta section of the spec file.
    87  type TransportConfig struct {
    88      Host string
    89      BasePath string
    90      Schemes []string
    91  }
    92  
    93  // WithHost overrides the default host,
    94  // provided by the meta section of the spec file.
    95  func (cfg *TransportConfig) WithHost(host string) *TransportConfig {
    96      cfg.Host = host
    97      return cfg
    98  }
    99  
   100  // WithBasePath overrides the default basePath,
   101  // provided by the meta section of the spec file.
   102  func (cfg *TransportConfig) WithBasePath(basePath string) *TransportConfig {
   103      cfg.BasePath = basePath
   104      return cfg
   105  }
   106  
   107  // WithSchemes overrides the default schemes,
   108  // provided by the meta section of the spec file.
   109  func (cfg *TransportConfig) WithSchemes(schemes []string) *TransportConfig {
   110      cfg.Schemes = schemes
   111      return cfg
   112  }
   113  
   114  // {{ pascalize .Name }} is a client for {{ humanize .Name }}
   115  type {{ pascalize .Name }} struct {
   116    {{ range .OperationGroups }}
   117      {{ pascalize .Name }} {{ .PackageAlias }}.ClientService
   118    {{ end }}
   119    Transport runtime.ClientTransport
   120  }
   121  
   122  
   123  // SetTransport changes the transport on the client and all its subresources
   124  func (c *{{pascalize .Name}}) SetTransport(transport runtime.ClientTransport) {
   125    c.Transport = transport
   126    {{- range .OperationGroups }}
   127    c.{{ pascalize .Name }}.SetTransport(transport)
   128    {{- end }}
   129  }