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 CallResponse
- 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) CallWithEnvelope(ctx context.Context, soapAction string, envelope, response interface{}, ...) error
- func (s *Client) CallWithFaultDetail(soapAction string, request, response interface{}, faultDetail FaultError) error
- func (s *Client) GetHttpClientHeaders() map[string]string
- func (s *Client) SetHeaders(headers ...interface{})
- func (s *Client) SetHttpClientHeaders(headers map[string]string)
- type CustomSOAPEnvelope
- 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
- func (s *SOAPEnvelopeResponse) GetAttachments() []MIMEMultipartAttachment
- func (s *SOAPEnvelopeResponse) GetBody() SoapResponseBodyInterface
- func (s *SOAPEnvelopeResponse) GetHeader() interface{}
- func (s *SOAPEnvelopeResponse) SetBody(body SoapResponseBodyInterface)
- func (s *SOAPEnvelopeResponse) SetHeader(header interface{})
- func (s *SOAPEnvelopeResponse) SetXMLName(xmlName xml.Name)
- type SOAPFault
- type SOAPHeader
- type SOAPHeaderResponse
- type SOAPResponseEnvelopeInterface
- type SoapResponseBodyInterface
- type WSSPassword
- type WSSSecurityHeader
- type WSSUsername
- type WSSUsernameToken
- type XSDDate
- func (xd XSDDate) MarshalXML(e *xml.Encoder, start xml.StartElement) error
- func (xd XSDDate) MarshalXMLAttr(name xml.Name) (xml.Attr, error)
- func (xd *XSDDate) StripTz()
- func (xd *XSDDate) ToGoTime() time.Time
- func (xd *XSDDate) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
- func (xd *XSDDate) UnmarshalXMLAttr(attr xml.Attr) error
- type XSDDateTime
- func (xdt XSDDateTime) MarshalXML(e *xml.Encoder, start xml.StartElement) error
- func (xdt XSDDateTime) MarshalXMLAttr(name xml.Name) (xml.Attr, error)
- func (xdt *XSDDateTime) StripTz()
- func (xdt *XSDDateTime) ToGoTime() time.Time
- func (xdt *XSDDateTime) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
- func (xdt *XSDDateTime) UnmarshalXMLAttr(attr xml.Attr) error
- 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) MarshalXMLAttr(name xml.Name) (xml.Attr, 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
- func (xt *XSDTime) UnmarshalXMLAttr(attr xml.Attr) 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 ¶
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 ¶
NewBinary allocate a new Binary backed by the given byte slice, an auto-generated packageID and no MTOM-usage
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) SetPackageID ¶
SetPackageID sets and overrides the default auto-generated package ID to be used for the multipart binary
func (*Binary) SetUseMTOM ¶
SetUseMTOM activates the XOP transformation of binaries in MTOM requests
func (*Binary) UnmarshalXML ¶
UnmarshalXML implements the xml.Unmarshaler interface to decode a Binary form XML
type CallResponse ¶
CallResponse rappresenta la struttura che contiene tutte le informazioni della risposta SOAP.
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 ¶
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 ¶
func (s *Client) CallContext(ctx context.Context, soapAction string, request, response interface{}) error
CallContext performs HTTP POST request with a context
func (*Client) CallContextWithAttachmentsAndFaultDetail ¶
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 ¶
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) CallWithEnvelope ¶
func (s *Client) CallWithEnvelope(ctx context.Context, soapAction string, envelope, response interface{}, faultDetail FaultError, retAttachments *[]MIMEMultipartAttachment) 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) GetHttpClientHeaders ¶
Get all currently available http headers from client Use case: For setting authentication header
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
func (*Client) SetHttpClientHeaders ¶
Update Http headers with latest header information
type CustomSOAPEnvelope ¶
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 HTTPError ¶
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 ¶
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 WithMIMEMultipartAttachments ¶
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 ¶
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:"soap:Body"` Content interface{} `xml:",omitempty"` Fault *SOAPFault `xml:",omitempty"` // contains filtered or unexported fields }
func (*SOAPBody) ErrorFromFault ¶
type SOAPBodyResponse ¶
type SOAPBodyResponse struct { XMLName xml.Name `xml:"Body"` Content interface{} `xml:",omitempty"` Fault *SOAPFault `xml:",omitempty"` // contains filtered or unexported fields }
func (*SOAPBodyResponse) ErrorFromFault ¶
func (b *SOAPBodyResponse) ErrorFromFault() error
func (*SOAPBodyResponse) SetContent ¶
func (b *SOAPBodyResponse) SetContent(content interface{})
func (*SOAPBodyResponse) UnmarshalXML ¶
func (b *SOAPBodyResponse) UnmarshalXML(d *xml.Decoder, _ xml.StartElement) error
UnmarshalXML unmarshals SOAPBody xml
type SOAPDecoder ¶
type SOAPDecoder interface {
Decode(v interface{}) error
}
type SOAPEncoder ¶
type SOAPEnvelope ¶
type SOAPEnvelope struct { XMLName xml.Name `xml:"soap:Envelope"` XmlNS string `xml:"xmlns:soap,attr"` Header *SOAPHeader Body SOAPBody }
type SOAPEnvelopeResponse ¶
type SOAPEnvelopeResponse struct { XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` Header *SOAPHeaderResponse Body SoapResponseBodyInterface Attachments []MIMEMultipartAttachment `xml:"attachments,omitempty"` }
func (*SOAPEnvelopeResponse) GetAttachments ¶
func (s *SOAPEnvelopeResponse) GetAttachments() []MIMEMultipartAttachment
func (*SOAPEnvelopeResponse) GetBody ¶
func (s *SOAPEnvelopeResponse) GetBody() SoapResponseBodyInterface
func (*SOAPEnvelopeResponse) GetHeader ¶
func (s *SOAPEnvelopeResponse) GetHeader() interface{}
func (*SOAPEnvelopeResponse) SetBody ¶
func (s *SOAPEnvelopeResponse) SetBody(body SoapResponseBodyInterface)
func (*SOAPEnvelopeResponse) SetHeader ¶
func (s *SOAPEnvelopeResponse) SetHeader(header interface{})
func (*SOAPEnvelopeResponse) SetXMLName ¶
func (s *SOAPEnvelopeResponse) SetXMLName(xmlName xml.Name)
type SOAPFault ¶
type SOAPHeader ¶
type SOAPHeaderResponse ¶
type SOAPResponseEnvelopeInterface ¶
type SOAPResponseEnvelopeInterface interface { GetBody() SoapResponseBodyInterface GetHeader() interface{} SetBody(body SoapResponseBodyInterface) GetAttachments() []MIMEMultipartAttachment SetHeader(interface{}) SetXMLName(xml.Name) }
type SoapResponseBodyInterface ¶
type SoapResponseBodyInterface interface { ErrorFromFault() error SetContent(interface{}) }
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 XSDDate
func (XSDDate) MarshalXMLAttr ¶
MarshalXMLAttr implementation on XSDDate
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 implements xml.Unmarshaler on XSDDate to use dateLayout
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 implements xml.MarshalerAttr on XSDDateTime
func (XSDDateTime) MarshalXMLAttr ¶
MarshalXMLAttr implements xml.MarshalerAttr on XSDDateTime
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 implements xml.Unmarshaler on XSDDateTime to use time.RFC3339Nano
func (*XSDDateTime) UnmarshalXMLAttr ¶
func (xdt *XSDDateTime) UnmarshalXMLAttr(attr xml.Attr) error
UnmarshalXMLAttr implements xml.UnmarshalerAttr on XSDDateTime to use time.RFC3339Nano
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 implements xml.Marshaler on XSDTime
func (XSDTime) MarshalXMLAttr ¶
MarshalXMLAttr implements xml.MarshalerAttr on XSDTime
func (XSDTime) Nanosecond ¶
Nanosecond returns nanosecond of the xsd:time
func (*XSDTime) UnmarshalXML ¶
UnmarshalXML implements xml.Unmarshaler on XSDTime to use dateTimeLayout