gosoap

package module
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 21, 2019 License: MIT Imports: 13 Imported by: 0

README

Go Soap Build Status GoDoc Go Report Card codecov

package to help with SOAP integrations (client)

Install
go get github.com/tiaguinho/gosoap
Example
package main

import (
	"github.com/tiaguinho/gosoap"
	"fmt"
)

type GetGeoIPResponse struct {
	GetGeoIPResult GetGeoIPResult
}

type GetGeoIPResult struct {
	ReturnCode        string
	IP                string
	ReturnCodeDetails string
	CountryName       string
	CountryCode       string
}

var (
	r GetGeoIPResponse
)

func main() {
	soap, err := gosoap.SoapClient("http://www.webservicex.net/geoipservice.asmx?WSDL")
	if err != nil {
		fmt.Errorf("error not expected: %s", err)
	}

	params := gosoap.Params{
		"IPAddress": "8.8.8.8",
	}

	err = soap.Call("GetGeoIP", params)
	if err != nil {
		fmt.Errorf("error in soap call: %s", err)
	}

	soap.Unmarshal(&r)
	if r.GetGeoIPResult.CountryCode != "USA" {
		fmt.Errorf("error: %+v", r)
	}
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	WSDL        string
	URL         string
	Method      string
	MethodPath  string
	Params      Params
	Definitions *wsdlDefinitions
	Body        []byte
	// contains filtered or unexported fields
}

Client struct hold all the informations about WSDL, request and response of the server

func SoapClient

func SoapClient(wsdl string) (*Client, error)

SoapClient return new *Client to handle the requests with the WSDL

func (*Client) Call

func (c *Client) Call(p Params, m ...string) (err error)

Call call's the method m with Params p

func (*Client) DisableRequestDebug added in v1.2.0

func (c *Client) DisableRequestDebug()

func (*Client) DisableResponseDebug added in v1.2.0

func (c *Client) DisableResponseDebug()

func (*Client) EnableRequestDebug added in v1.2.0

func (c *Client) EnableRequestDebug()

func (*Client) EnableResponseDebug added in v1.2.0

func (c *Client) EnableResponseDebug()

func (Client) MarshalXML

func (c Client) MarshalXML(e *xml.Encoder, _ xml.StartElement) error

MarshalXML envelope the body and encode to xml

func (*Client) Unmarshal

func (c *Client) Unmarshal(v interface{}) error

Unmarshal get the body and unmarshal into the interface

type Fault added in v1.1.0

type Fault struct {
	Code        string `xml:"faultcode"`
	Description string `xml:"faultstring"`
	Detail      string `xml:"detail"`
}

Fault response

type Params

type Params map[string]interface{}

Params type is used to set the params in soap request

type SoapBody

type SoapBody struct {
	XMLName  struct{} `xml:"Body"`
	Contents []byte   `xml:",innerxml"`
}

SoapBody struct

type SoapEnvelope

type SoapEnvelope struct {
	XMLName struct{} `xml:"Envelope"`
	Body    SoapBody
}

SoapEnvelope struct

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL