https://www.gravatar.com/avatar/2a389171c064e3f0739eea781acea0f4?s=240&d=mp

Welcome

DGraph - Teil 2: GraphQL Schema und die ersten Schritte

Beim letzten mal haben wir den Server gestartet und unsere ersten Daten gespeichert. Hierzu hatten wir das Ratel Interface von Dgraph genutzt. Wir haben auch einen GraphQl Endpunkt bereitgestellt. Hier erzeugen wir die selben Daten und Verbindungen wie schon zuvor in Ratel. Im Moment können wir mit unseren GraphQL Endpunkt nichts machen, da GraphQL ein Schema benötigt. Hierzu erstellen wir eine Datei namens schema.graphql: 1 2 3 4 5 typePerson{name:String!

DGraph - Teil 1: Installation & erste Schritte

Ich war auf der Suche nach einem Datenbanksystem für ein internes Projekt in unserer Firma. Aus diesem Grund habe ich mir verschiedene Systeme angesehen. Neben alten Bekannten aus dem SQL oder NoSQL Umfeld bin ich auf etwas sehr interessantes gestoßen. Graph Datenbanken. Ohne großartig auf die Unterschiede eingehen zu wollen, hier die für mich interessantesten Aspekte, weshalb ich mich entschieden habe für meine Projekt eine Graphdatenbank zu wählen: kein festes Datenbankschema erforderlich Daten werden in Form von Knoten und Verbindungen abgebildet starker Fokus auf die Beziehungen von Datensätzen zueinander präziser Abruf von Daten auch über Beziehungen hinweg gRPC Server eingebaut GraphQL Server eingebaut Dgraph Server starten Am einfachsten lässt sich Dgraph mit Docker starten.

URLs in Go kodieren

Das Paket net/url ist ein nützliches Paket um in Go mit URLs, Pfaden und Parametern umzugehen. Man kann Parameter in ein URL kodieren lassen oder Sonderzeichen automatisch umwandeln. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 package main import ( "fmt" "log" "net/url" ) func main() { //set the URL baseUrl, err := url.Parse("https://www.google.com/search") if err != nil { log.

Kennwörter in Go verschlüsseln

Go hat von vorne herein bereits viele hilfreiche Pakete. Eines davon ist das Paket bcrypt mit dem sich z.B. Kennwörter sicher verschlüsseln lassen: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package main import ( "fmt" "golang.org/x/crypto/bcrypt" ) func main() { pw := "SecretPassword" bs, err := bcrypt.GenerateFromPassword([]byte(pw), 2) //let's look at the encrypted password fmt.Printf("encryption result: %s\n", string(bs)) err = bcrypt.

Go routinen und Fehlerbehandlung

Bei einem kleinen Projekt an dem ich gerade arbeite habe ich gerade mit dem Thema Fehlerbeahndlung in Verbindung mit Goroutinen zu tun. Ich habe hier eine Library geschrieben, welche verschiedene Methoden für eine Bestellung anbietet. Natürlich habe ich brav darauf geachtet, dass im Fall der Fälle ein Fehler zurückgegeben wird. Aber wie ist das wenn ich nun eine Methode als Goroutine starte. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package main import ( "fmt" ) type order struct { id string } func (o *order) create(id string) error { //do something useful with the order if id == "OD-002" { err := fmt.

Reguläre Ausdrücke - Wenn sie nur nicht so praktisch wären

Ich habe lange einen Bogen um reguläre Ausdrücke gemacht. Jedes Mal wenn ich es mit dem Thema zu tun bekam war die instinktive Reaktion die Flucht. Ich habe mich immer mal wieder versucht diesem Thema zu nähern. Die ganzen schlauen Menschen, die reguläre Ausdrücke beherrschen, können ja nicht ganz falsch liegen. Ich habe allen Mut zusammen genommen und mich durchgekämpft. Ich muss ganz ehrlich zugeben ich bin immer noch nicht der allergrößte Fan regulärer Ausdrücke.