Skip to content
Salesforce SOAP API Client for golang
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
soapforce
.gitignore
LICENSE
Makefile
README.md
apex.go
apex.wsdl.xml
client.go
metadata.wsdl.xml
partner.wsdl
soapforce.go
tooling.wsdl.xml

README.md

go-soapforce

Salesforce SOAP API Client for golang

Install

go get github.com/tzmfreedom/go-soapforce

Usage

import package and initialize client

import "github.com/tzmfreedom/go-soapforce"

client := soapforce.NewClient()

for sandbox

client.SetLoginUrl("test.salesforce.com")

set api version

client.SetApiVersion("44.0")

debug request/response

client.SetDebug(true)

Login

res, err := client.Login("username", "password")

Logout

res, err := client.Logout()

DescribeSObject

res, err := client.DescribeSObject("Account")

DescribeGlobal

res, err := client.DescribeGlobal()

DescribeLayout

recordTypeIds := []string{}
res, err := client.DescribeLayout("Account", "layout_name", recordTypeIds)

Create

sobjects := []*soapforce.SObject{
	{
		Type: "Account",
		Fields: map[string]string{
			"Name": "Foo",
		},
	},
}
res, err := client.Create(sobjects)

Update

sobjects := []*soapforce.SObject{
	{
		Id:   "001xxxxxxxxxxxxxxx",
		Type: "Account",
		Fields: map[string]string{
			"Name": "Updated Name",
		},
	},
}
sResult, err := client.Update(sobjects)

Upsert

sobjects := []*soapforce.SObject{
	{
		Id:   "001xxxxxxxxxxxxxxx",
		Type: "Account",
		Fields: map[string]string{
			"Name": "Upserted Name",
		},
	},
}
sResult, err := client.Upsert(sobjects, "Id")

Delete

ids := []string{
	"001xxxxxxxxxxxxxxx",
}
sResult, err := client.Delete(ids)

Undelete

ids := []string{
	"001xxxxxxxxxxxxxxx",
}
sResult, err := client.Undelete(ids)

Query

res, err := client.Query("SELECT id, Name FROM Account")

Set BatchSize

client.SetBatchSize(200)

QueryMore

res, err := client.Query("SELECT id FROM Account")
res, err = client.QueryMore(res.ql)

Retrieve

ids := []string{ "001A000001WTqy6" }
res, err := client.Retrieve("Account", ids, "Name, BillingAddress")

GetUserInfo

res, err := client.GetUserInfo()

Contribute

Just send pull request if needed or fill an issue!

License

The MIT License See LICENSE file.

You can’t perform that action at this time.