Documentation ¶
Index ¶
- Constants
- type Binary
- type Client
- func (s *Client) AddHeader(header interface{})
- func (s *Client) Call(soapAction string, request, response interface{}) error
- func (s *Client) CallContext(ctx context.Context, soapAction string, request, response interface{}) error
- func (s *Client) CallContextWithFaultDetail(ctx context.Context, soapAction string, request, response interface{}, ...) error
- func (s *Client) CallWithFaultDetail(soapAction string, request, response interface{}, faultDetail FaultError) error
- func (s *Client) SetHeaders(headers ...interface{})
- type DetailContainer
- type FaultError
- type HTTPClient
- type Option
- func WithBasicAuth(login, password string) Option
- func WithHTTPClient(c HTTPClient) Option
- func WithHTTPHeaders(headers map[string]string) Option
- func WithMTOM() Option
- func WithRequestTimeout(t time.Duration) Option
- func WithTLS(tls *tls.Config) Option
- func WithTLSHandshakeTimeout(t time.Duration) Option
- func WithTimeout(t time.Duration) Option
- type SOAPBody
- type SOAPDecoder
- type SOAPEncoder
- type SOAPEnvelope
- type SOAPFault
- type SOAPHeader
- type WSSPassword
- type WSSSecurityHeader
- type WSSUsername
- type WSSUsernameToken
- type XSDDate
- type XSDDateTime
- type XSDTime
- func (xt XSDTime) Hour() int
- func (xt XSDTime) Location() *time.Location
- func (xt XSDTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error
- func (xt XSDTime) Minute() int
- func (xt XSDTime) Nanosecond() int
- func (xt XSDTime) Second() int
- func (xt *XSDTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
Constants ¶
const ( // Predefined WSS namespaces to be used in WssNsWSSE string = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" WssNsWSU string = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" WssNsType string = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Binary ¶
type Binary struct {
// contains filtered or unexported fields
}
Binary enables binary data to be enchanged in MTOM mode with XOP encoding When MTOM is not used, the field is encoded in Base64
func (*Binary) ContentType ¶
ContentType returns the content type
func (*Binary) MarshalXML ¶
MarshalXML implements the xml.Marshaler interface to encode a Binary to XML
func (*Binary) SetContentType ¶
SetContentType sets the content type the content will be transmitted as multipart
func (*Binary) UnmarshalXML ¶
UnmarshalXML implements the xml.Unmarshaler interface to decode a Binary form XML
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is soap client
func (*Client) AddHeader ¶
func (s *Client) AddHeader(header interface{})
AddHeader adds envelope header For correct behavior, every header must contain a `XMLName` field. Refer to #121 for details
func (*Client) CallContext ¶
func (s *Client) CallContext(ctx context.Context, soapAction string, request, response interface{}) error
CallContext performs HTTP POST request with a context
func (*Client) CallContextWithFaultDetail ¶
func (s *Client) CallContextWithFaultDetail(ctx context.Context, soapAction string, request, response interface{}, faultDetail FaultError) error
CallContextWithFault performs HTTP POST request. Note that if SOAP fault is returned, it will be stored in the error.
func (*Client) CallWithFaultDetail ¶
func (s *Client) CallWithFaultDetail(soapAction string, request, response interface{}, faultDetail FaultError) error
CallWithFaultDetail performs HTTP POST request. Note that if SOAP fault is returned, it will be stored in the error. the passed in fault detail is expected to implement FaultError interface, which allows to condense the detail into a short error message.
func (*Client) SetHeaders ¶
func (s *Client) SetHeaders(headers ...interface{})
SetHeaders sets envelope headers, overwriting any existing headers. For correct behavior, every header must contain a `XMLName` field. Refer to #121 for details
type DetailContainer ¶
type DetailContainer struct {
Detail interface{}
}
type FaultError ¶
type FaultError interface { // ErrorString should return a short version of the detail as a string, // which will be used in place of <faultstring> for the error message. // Set "HasData()" to always return false if <faultstring> error // message is preferred. ErrorString() string // HasData indicates whether the composite fault contains any data. HasData() bool }
type HTTPClient ¶
HTTPClient is a client which can make HTTP requests An example implementation is net/http.Client
type Option ¶
type Option func(*options)
A Option sets options such as credentials, tls, etc.
func WithBasicAuth ¶
WithBasicAuth is an Option to set BasicAuth
func WithHTTPClient ¶
func WithHTTPClient(c HTTPClient) Option
WithHTTPClient is an Option to set the HTTP client to use This cannot be used with WithTLSHandshakeTimeout, WithTLS, WithTimeout options
func WithHTTPHeaders ¶
WithHTTPHeaders is an Option to set global HTTP headers for all requests
func WithMTOM ¶
func WithMTOM() Option
WithMTOM is an Option to set Message Transmission Optimization Mechanism MTOM encodes fields of type Binary using XOP.
func WithRequestTimeout ¶
WithRequestTimeout is an Option to set default end-end connection timeout This option cannot be used with WithHTTPClient
func WithTLS ¶
WithTLS is an Option to set tls config This option cannot be used with WithHTTPClient
func WithTLSHandshakeTimeout ¶
WithTLSHandshakeTimeout is an Option to set default tls handshake timeout This option cannot be used with WithHTTPClient
func WithTimeout ¶
WithTimeout is an Option to set default HTTP dial timeout
type SOAPBody ¶
type SOAPBody struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Body"` Content interface{} `xml:",omitempty"` Fault *SOAPFault `xml:",omitempty"` // contains filtered or unexported fields }
func (*SOAPBody) ErrorFromFault ¶
func (*SOAPBody) UnmarshalXML ¶
UnmarshalXML unmarshals SOAPBody xml
type SOAPDecoder ¶
type SOAPDecoder interface {
Decode(v interface{}) error
}
type SOAPEncoder ¶
type SOAPEnvelope ¶
type SOAPEnvelope struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` Header *SOAPHeader Body SOAPBody }
type SOAPFault ¶
type SOAPHeader ¶
type WSSPassword ¶
type WSSSecurityHeader ¶
type WSSSecurityHeader struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ wsse:Security"` XmlNSWsse string `xml:"xmlns:wsse,attr"` MustUnderstand string `xml:"mustUnderstand,attr,omitempty"` Token *WSSUsernameToken `xml:",omitempty"` }
func NewWSSSecurityHeader ¶
func NewWSSSecurityHeader(user, pass, tokenID, mustUnderstand string) *WSSSecurityHeader
NewWSSSecurityHeader creates WSSSecurityHeader instance
type WSSUsername ¶
type WSSUsernameToken ¶
type WSSUsernameToken struct { XMLName xml.Name `xml:"wsse:UsernameToken"` XmlNSWsu string `xml:"xmlns:wsu,attr"` XmlNSWsse string `xml:"xmlns:wsse,attr"` Id string `xml:"wsu:Id,attr,omitempty"` Username *WSSUsername `xml:",omitempty"` Password *WSSPassword `xml:",omitempty"` }
type XSDDate ¶
type XSDDate struct {
// contains filtered or unexported fields
}
XSDDate is a type for representing xsd:date in Golang
func CreateXsdDate ¶
CreateXsdDate creates an object represent xsd:datetime object in Golang
func (XSDDate) MarshalXML ¶
MarshalXML implementation on DateTimeg to skip "zero" time values
func (*XSDDate) StripTz ¶
func (xd *XSDDate) StripTz()
StripTz removes the TZ information from the date
func (*XSDDate) ToGoTime ¶
ToGoTime converts the date to Golang time.Time by checking if a TZ is specified. If there is a TZ, that TZ is used, otherwise local TZ is used
func (*XSDDate) UnmarshalXML ¶
UnmarshalXML implementation on DateTimeg to use dateTimeLayout
type XSDDateTime ¶
type XSDDateTime struct {
// contains filtered or unexported fields
}
XSDDateTime is a type for representing xsd:datetime in Golang
func CreateXsdDateTime ¶
func CreateXsdDateTime(dt time.Time, hasTz bool) XSDDateTime
CreateXsdDateTime creates an object represent xsd:datetime object in Golang
func (XSDDateTime) MarshalXML ¶
func (xdt XSDDateTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error
MarshalXML implementation on DateTime to skip "zero" time values. It also checks if nanoseconds and TZ exist.
func (*XSDDateTime) StripTz ¶
func (xdt *XSDDateTime) StripTz()
StripTz removes TZ information from the datetime
func (*XSDDateTime) ToGoTime ¶
func (xdt *XSDDateTime) ToGoTime() time.Time
ToGoTime converts the time to time.Time by checking if a TZ is specified. If there is a TZ, that TZ is used, otherwise local TZ is used
func (*XSDDateTime) UnmarshalXML ¶
func (xdt *XSDDateTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML implementation on DateTimeg to use dateTimeLayout
type XSDTime ¶
type XSDTime struct {
// contains filtered or unexported fields
}
XSDTime is a type for representing xsd:time
func CreateXsdTime ¶
CreateXsdTime creates an object representing xsd:time in Golang
func (XSDTime) MarshalXML ¶
MarshalXML implementation on DateTimeg to skip "zero" time values
func (XSDTime) Nanosecond ¶
Nanosecond returns nanosecond of the xsd:time
func (*XSDTime) UnmarshalXML ¶
UnmarshalXML implementation on DateTimeg to use dateTimeLayout