Hey my name is Sascha.

On this website I will show you how I automate our e-commerce business.

DGraph - Teil 3: RDF N-Quads

Das hinzufügen oder ändern Daten wird in Dgraph so wie in GraphQL auch als Mutation bezeichnet. Das Eingabeformat sind hier sogenannte Triples im RDF N-Quad Format. So ein Triple besteht aus 3 Bausteinen, einem Subjekt, einem Prädikat und einem Objekt. Da klingelt doch was? Ja genau, so etwas gab es vor graumer Zeit einmal in der Schule. Die Begriffe Subjekt, Prädikat und Objekt sind hier nicht zufällig gewählt: Ein Triple ist eine Aussage, die Subjekt und Objekt miteinander in Beziehung setzt,

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 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 type Person { 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 Knoten und Verbindungen abgebildet starker Fokus auf die Beziehungen Datensätzen zueinander präziser Abruf 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.Fatalln(err) } fmt.

Kennwörter in Go verschlüsseln

Go hat 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.
0%