Introducing the Golang Dataverse Sdk

Why? Well, why not!

Dataverse is a powerful tool for storing and managing data, but the current SDK is limited to C# only. This can be a problem for developers working in other languages, or for those who need to perform massive operations quickly and efficiently.

That’s why I’m about to announce the development of a new unofficial and opensource SDK for Dataverse, written in the programming language Golang. This SDK will allow for better interoperability between different operating systems, and will take advantage of Golang’s known performance benefits for massive operations.

One of the main advantages of Golang is its speed and scalability. It’s a compiled language, which means that it runs faster than interpreted languages like Python or JavaScript. This makes it ideal for handling large amounts of data, and for performing complex operations quickly.

Another advantage of Golang is its cross-platform compatibility. It can run on a variety of operating systems, including Windows, Linux, and MacOS. This makes it a great choice for developers working on projects that need to be deployed across different environments.

The Golang Dataverse SDK will make it easy for developers to interact with the underlying API of Dataverse, and to take advantage of its powerful features. With this SDK, developers will be able to perform tasks such as creating and managing datasets, running queries, and retrieving results.

Overall, the new Golang Dataverse SDK will offer a powerful and efficient way for developers to work with Dataverse, and will open up new possibilities for data management and analysis. Stay tuned for updates on the development of this SDK and its release.

Limitations

The SDK currently offers a method for authentication exclusively for application users, which can be obtained by following a set of simple steps.

Although the number of methods available is limited, they have proven to be quite effective. However, there are some restrictions to keep in mind, such as the maximum limit of 5000 records for multiples retrieval and the fact that retry due to throttling is only applied to batch requests.

Despite this, the SDK is still a work in progress and any contributions or suggestions for improvement would be greatly appreciated.

Usage

You can see some instruction on the usage in the git repository. Here is a simple Retrieve request:

package main

import (
	"fmt"

	"github.com/emaporta/dataversego"
)

func main() {
    // Use your own CLIENTID, SECRET, TOKEN and ORGURL
	auth := dataversego.Authenticate("CLIENTID", "SECRET", "TOKEN", "ORGURL")

	fmt.Println(auth)

	columns := []string{"fullname"}

	retrieveParameters := dataversego.RetrieveSignature{
		Auth:      auth,
		TableName: "contacts",
		Id:        "CONTACT_GUID",
		Columns:   columns,
	}

	ent, err := dataversego.Retrieve(retrieveParameters)

	if err != nil {

		fmt.Println(err)
	}
	fmt.Println(ent)
}