Sortie du SDK Go pour Kuzzle v2

Notre catalogue de SDK s’agrandit pour Kuzzle v2, et c’est maintenant le tour de Go ! 

C’est l’occasion de vous faire découvrir notre nouveau SDK Go v3, qui permet aux développeurs d’utiliser Kuzzle dans l’environnement haute performance de l’écosystème Go.

Pourquoi Go ?

 

GolangCréé par Google, Go permet de produire des programmes extrêmement portables et performants. La cross compilation est aisée via son système de variables d’environnement.

 

Go est aussi un langage productif. Le programme compilé embarque son environnement d'exécution ainsi qu’un garbage collector.

La syntaxe est verbeuse et explicite rendant sa prise en main rapide.

Go veille à ce que votre toolbox soit compilable sur toutes les plateformes et sur toutes les architectures, ce qui est notablement utile pour les DevOps.

Il utilise également une solution de gestion de paquets simple et portable. Vous pouvez facilement remplacer vos langages de script par Go.

De nombreux projets open-source (Jaeger, Kubernetes, Docker, etc.) sont maintenant écrits en Go. 

Il devient de plus en plus utile en tant que langage standard pour les micro-services et le web.

 

Montrez-moi du code !

Installer le SDK :

 

$ go get github.com/kuzzleio/sdk-go

 

Connectez vous dès à présent à votre application Kuzzle!

 

Tout d’abord il faut instancier le SDK en choisissant le protocole de communication.

 

  c := websocket.NewWebSocket("kuzzle", nil)
  kuzzle, _ := kuzzle.NewKuzzle(c, nil)
  err := kuzzle.Connect()
  if err != nil {
    log.Fatal(err)
    os.Exit(1)
  }
  fmt.Println("Connected!")

 

La structure de nos SDK est calquée sur celle de notre API avec un découpage en contrôleurs et actions.

Pour vous authentifier:

_, err := kuzzle.Auth.Login("local", json.RawMessage("{\"username\":\"foo\",\"password\":\"bar\"}"), nil)
if err != nil {
  log.Fatal(err)
} else {
  fmt.Printf("Success")
}

 

Pour créer un document:

response, err := kuzzle.Document.Create("nyc-open-data", "yellow-taxi", "some-id", json.RawMessage(`{"lastName": "Eggins"}`), nil)
if err != nil {
  log.Fatal(err)
} else {
  fmt.Println(string(response))
  fmt.Println("Success")
}

 

Vous pouvez consulter l'intégralité de la documentation et découvrir notre Getting Started.

Une “Godoc” est également générée depuis Github via les commentaires que nous laissons dans le code :  https://pkg.go.dev/github.com/kuzzleio/sdk-go/

 

Rejoignez la communauté Kuzzle + Go

 

Nous continuerons à enrichir la documentation afin de la rendre plus accessible, en rédigeant notamment des Getting Started et des nouveaux guides.

Enfin, comme l’API de Kuzzle s’enrichit sans cesse de nouvelles actions, nous allons également avoir du travail pour les intégrer au SDK actuel.

Nous sommes open-source, alors n'hésitez plus à contribuer ;) https://github.com/kuzzleio/sdk-go

Rejoignez la communauté Kuzzle + Go sur Discord : http://join.discord.kuzzle.io 

 

Yoann Abbes

Postes associés