Documentation
¶
Index ¶
- Constants
- type Binary
- func (b *Binary) Bytes() []byte
- func (b *Binary) ContentType() string
- func (b *Binary) MarshalXML(enc *xml.Encoder, start xml.StartElement) error
- func (b *Binary) SetContentType(contentType string) *Binary
- func (b *Binary) SetPackageID(packageID string) *Binary
- func (b *Binary) SetUseMTOM(useMTOM bool) *Binary
- func (b *Binary) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
- type Client
- func (s *Client) AddHeader(header interface{})
- func (s *Client) AddMIMEMultipartAttachment(attachment MIMEMultipartAttachment)
- 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) CallContextWithAttachmentsAndFaultDetail(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 HTTPError
- type MIMEMultipartAttachment
- type Option
- func WithBasicAuth(login, password string) Option
- func WithHTTPClient(c HTTPClient) Option
- func WithHTTPHeaders(headers map[string]string) Option
- func WithMIMEMultipartAttachments() 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 SOAPBodyResponse
- type SOAPDecoder
- type SOAPEncoder
- type SOAPEnvelope
- type SOAPEnvelopeResponse
- type SOAPFault
- type SOAPHeader
- type SOAPHeaderResponse
- 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" XmlNsSoapEnv string = "http://schemas.xmlsoap.org/soap/envelope/" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Binary ¶ added in v0.4.0
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 NewBinary ¶ added in v0.4.0
NewBinary allocate a new Binary backed by the given byte slice, an auto-generated packageID and no MTOM-usage
func (*Binary) ContentType ¶ added in v0.4.0
ContentType returns the content type
func (*Binary) MarshalXML ¶ added in v0.4.0
MarshalXML implements the xml.Marshaler interface to encode a Binary to XML
func (*Binary) SetContentType ¶ added in v0.4.0
SetContentType sets the content type the content will be transmitted as multipart
func (*Binary) SetPackageID ¶ added in v0.5.0
SetPackageID sets and overrides the default auto-generated package ID to be used for the multipart binary
func (*Binary) SetUseMTOM ¶ added in v0.5.0
SetUseMTOM activates the XOP transformation of binaries in MTOM requests
func (*Binary) UnmarshalXML ¶ added in v0.4.0
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) AddMIMEMultipartAttachment ¶ added in v0.5.0
func (s *Client) AddMIMEMultipartAttachment(attachment MIMEMultipartAttachment)
AddMIMEMultipartAttachment adds an attachment to the client that will be sent only if the WithMIMEMultipartAttachments option is used
func (*Client) Call ¶
Call performs HTTP POST request. Note that if the server returns a status code >= 400, a HTTPError will be returned
func (*Client) CallContext ¶ added in v0.4.0
func (s *Client) CallContext(ctx context.Context, soapAction string, request, response interface{}) error
CallContext performs HTTP POST request with a context
func (*Client) CallContextWithAttachmentsAndFaultDetail ¶ added in v0.5.0
func (s *Client) CallContextWithAttachmentsAndFaultDetail(ctx context.Context, soapAction string, request, response interface{}, faultDetail FaultError, attachments *[]MIMEMultipartAttachment) error
CallContextWithAttachmentsAndFaultDetail performs HTTP POST request. Note that if SOAP fault is returned, it will be stored in the error. On top the attachments array will be filled with attachments returned from the SOAP request.
func (*Client) CallContextWithFaultDetail ¶ added in v0.5.0
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 ¶ added in v0.5.0
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 ¶ added in v0.5.0
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 ¶ added in v0.5.0
type DetailContainer struct {
Detail interface{}
}
type FaultError ¶ added in v0.5.0
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 ¶ added in v0.4.0
HTTPClient is a client which can make HTTP requests An example implementation is net/http.Client
type HTTPError ¶ added in v0.5.0
type HTTPError struct { //StatusCode is the status code returned in the HTTP response StatusCode int //ResponseBody contains the body returned in the HTTP response ResponseBody []byte }
HTTPError is returned whenever the HTTP request to the server fails
type MIMEMultipartAttachment ¶ added in v0.5.0
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 ¶ added in v0.4.0
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 WithMIMEMultipartAttachments ¶ added in v0.5.0
func WithMIMEMultipartAttachments() Option
WithMIMEMultipartAttachments is an Option to set SOAP MIME Multipart attachment support. Use Client.AddMIMEMultipartAttachment to add attachments of type MIMEMultipartAttachment to your SOAP request.
func WithMTOM ¶ added in v0.4.0
func WithMTOM() Option
WithMTOM is an Option to set Message Transmission Optimization Mechanism MTOM encodes fields of type Binary using XOP.
func WithRequestTimeout ¶ added in v0.4.0
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 ¶ added in v0.4.0
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:"soap:Body"` Content interface{} `xml:",omitempty"` Fault *SOAPFault `xml:",omitempty"` // contains filtered or unexported fields }
func (*SOAPBody) ErrorFromFault ¶ added in v0.5.0
type SOAPBodyResponse ¶ added in v0.5.0
type SOAPBodyResponse struct { XMLName xml.Name `xml:"Body"` Content interface{} `xml:",omitempty"` Fault *SOAPFault `xml:",omitempty"` // contains filtered or unexported fields }
func (*SOAPBodyResponse) ErrorFromFault ¶ added in v0.5.0
func (b *SOAPBodyResponse) ErrorFromFault() error
func (*SOAPBodyResponse) UnmarshalXML ¶ added in v0.5.0
func (b *SOAPBodyResponse) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error
UnmarshalXML unmarshals SOAPBody xml
type SOAPDecoder ¶ added in v0.4.0
type SOAPDecoder interface {
Decode(v interface{}) error
}
type SOAPEncoder ¶ added in v0.4.0
type SOAPEnvelope ¶
type SOAPEnvelope struct { XMLName xml.Name `xml:"soap:Envelope"` XmlNS string `xml:"xmlns:soap,attr"` Header *SOAPHeader Body SOAPBody }
type SOAPEnvelopeResponse ¶ added in v0.5.0
type SOAPEnvelopeResponse struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` Header *SOAPHeaderResponse Body SOAPBodyResponse Attachments []MIMEMultipartAttachment `xml:"attachments,omitempty"` }
type SOAPFault ¶
type SOAPHeader ¶
type SOAPHeaderResponse ¶ added in v0.5.0
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 ¶ added in v0.5.0
type XSDDate struct {
// contains filtered or unexported fields
}
XSDDate is a type for representing xsd:date in Golang
func CreateXsdDate ¶ added in v0.5.0
CreateXsdDate creates an object represent xsd:datetime object in Golang
func (XSDDate) MarshalXML ¶ added in v0.5.0
MarshalXML implementation on DateTimeg to skip "zero" time values
func (*XSDDate) StripTz ¶ added in v0.5.0
func (xd *XSDDate) StripTz()
StripTz removes the TZ information from the date
func (*XSDDate) ToGoTime ¶ added in v0.5.0
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 ¶ added in v0.5.0
UnmarshalXML implementation on DateTimeg to use dateTimeLayout
type XSDDateTime ¶ added in v0.5.0
type XSDDateTime struct {
// contains filtered or unexported fields
}
XSDDateTime is a type for representing xsd:datetime in Golang
func CreateXsdDateTime ¶ added in v0.5.0
func CreateXsdDateTime(dt time.Time, hasTz bool) XSDDateTime
CreateXsdDateTime creates an object represent xsd:datetime object in Golang
func (XSDDateTime) MarshalXML ¶ added in v0.5.0
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 ¶ added in v0.5.0
func (xdt *XSDDateTime) StripTz()
StripTz removes TZ information from the datetime
func (*XSDDateTime) ToGoTime ¶ added in v0.5.0
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 ¶ added in v0.5.0
func (xdt *XSDDateTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
UnmarshalXML implementation on DateTimeg to use dateTimeLayout
type XSDTime ¶ added in v0.5.0
type XSDTime struct {
// contains filtered or unexported fields
}
XSDTime is a type for representing xsd:time
func CreateXsdTime ¶ added in v0.5.0
CreateXsdTime creates an object representing xsd:time in Golang
func (XSDTime) MarshalXML ¶ added in v0.5.0
MarshalXML implementation on DateTimeg to skip "zero" time values
func (XSDTime) Nanosecond ¶ added in v0.5.0
Nanosecond returns nanosecond of the xsd:time
func (*XSDTime) UnmarshalXML ¶ added in v0.5.0
UnmarshalXML implementation on DateTimeg to use dateTimeLayout