Popularity
6.6
Growing
Activity
5.6
Declining
298
10
113
Programming language: Go
License: MIT License
Latest version: v1.4.4
Go Soap alternatives and similar packages
Based on the "Web Frameworks" category.
Alternatively, view Go Soap alternatives based on common mentions on social networks and blogs.
-
Gin
Gin is a web framework written in Go! It features a martini-like API with much better performance, up to 40 times faster. If you need performance and good productivity. -
go-kit
A Microservice toolkit with support for service discovery, load balancing, pluggable transports, request tracking, etc. -
Iris
High-performance golang web application framework, providing a robust set of features for building modern web applications. -
httprouter
A high performance router. Use this and the standard http handlers to form a very high performance web framework. -
Faygo
Faygo uses the new architecture to make itself the most suitable Go Web framework for developping API. Just define a struct Handler, Faygo will automatically bind, verify the request parameters and generate the online API documentation. -
REST Layer
A framework to build REST/GraphQL API on top of databases with mostly configuration over code. -
Goyave
Feature-complete web framework aimed at clean code and fast development, with powerful built-in functionalities. -
rye
Tiny Go middleware library (with canned Middlewares) that supports JWT, CORS, Statsd, and Go 1.7 context -
ozzo-routing
A high-performance HTTP router and Web framework supporting routes with regular expressions. Comes with full support for quickly building a RESTful API application.
Get performance insights in less than 4 minutes
Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
Sponsored
scoutapm.com
Do you think we are missing an alternative of Go Soap or a related project?
Popular Comparisons
README
Go Soap

package to help with SOAP integrations (client)
Install
go get github.com/tiaguinho/gosoap
Examples
Basic use
package main
import (
"encoding/xml"
"log"
"net/http"
"time"
"github.com/tiaguinho/gosoap"
)
// GetIPLocationResponse will hold the Soap response
type GetIPLocationResponse struct {
GetIPLocationResult string `xml:"GetIpLocationResult"`
}
// GetIPLocationResult will
type GetIPLocationResult struct {
XMLName xml.Name `xml:"GeoIP"`
Country string `xml:"Country"`
State string `xml:"State"`
}
var (
r GetIPLocationResponse
)
func main() {
httpClient := &http.Client{
Timeout: 1500 * time.Millisecond,
}
soap, err := gosoap.SoapClient("http://wsgeoip.lavasoft.com/ipservice.asmx?WSDL", httpClient)
if err != nil {
log.Fatalf("SoapClient error: %s", err)
}
// Use gosoap.ArrayParams to support fixed position params
params := gosoap.Params{
"sIp": "8.8.8.8",
}
res, err := soap.Call("GetIpLocation", params)
if err != nil {
log.Fatalf("Call error: %s", err)
}
res.Unmarshal(&r)
// GetIpLocationResult will be a string. We need to parse it to XML
result := GetIPLocationResult{}
err = xml.Unmarshal([]byte(r.GetIPLocationResult), &result)
if err != nil {
log.Fatalf("xml.Unmarshal error: %s", err)
}
if result.Country != "US" {
log.Fatalf("error: %+v", r)
}
log.Println("Country: ", result.Country)
log.Println("State: ", result.State)
}
Set Custom Envelope Attributes
package main
import (
"encoding/xml"
"log"
"net/http"
"time"
"github.com/tiaguinho/gosoap"
)
// GetIPLocationResponse will hold the Soap response
type GetIPLocationResponse struct {
GetIPLocationResult string `xml:"GetIpLocationResult"`
}
// GetIPLocationResult will
type GetIPLocationResult struct {
XMLName xml.Name `xml:"GeoIP"`
Country string `xml:"Country"`
State string `xml:"State"`
}
var (
r GetIPLocationResponse
)
func main() {
httpClient := &http.Client{
Timeout: 1500 * time.Millisecond,
}
// set custom envelope
gosoap.SetCustomEnvelope("soapenv", map[string]string{
"xmlns:soapenv": "http://schemas.xmlsoap.org/soap/envelope/",
"xmlns:tem": "http://tempuri.org/",
})
soap, err := gosoap.SoapClient("http://wsgeoip.lavasoft.com/ipservice.asmx?WSDL", httpClient)
if err != nil {
log.Fatalf("SoapClient error: %s", err)
}
// Use gosoap.ArrayParams to support fixed position params
params := gosoap.Params{
"sIp": "8.8.8.8",
}
res, err := soap.Call("GetIpLocation", params)
if err != nil {
log.Fatalf("Call error: %s", err)
}
res.Unmarshal(&r)
// GetIpLocationResult will be a string. We need to parse it to XML
result := GetIPLocationResult{}
err = xml.Unmarshal([]byte(r.GetIPLocationResult), &result)
if err != nil {
log.Fatalf("xml.Unmarshal error: %s", err)
}
if result.Country != "US" {
log.Fatalf("error: %+v", r)
}
log.Println("Country: ", result.Country)
log.Println("State: ", result.State)
}