abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

API mit Golang

Link zum Beitrag wurde kopiert.

Aufsteiger
  • Community Senior
  • Community Junior
  • Community Junior
  • Community Junior
  • Community Junior
Beiträge: 1
Registriert: 23.11.2014

Hallo,

 

ich habe mich die letzten Tage durch die TAPI-"Dokumentation" gekämpft und einen simplen Client, der Barbestand und Depotwert abfragt, in Golang geschrieben.

 

Wenn jemand Interesse hat möge er/sie einfach hier kommentieren.

 

Gruß,

  Lordy

11 Antworten 11

Aufsteiger
Beiträge: 4
Registriert: 10.01.2023

Da die Frage aufgetaucht ist, wie man das konkret benutzt und ich es schon vor einer Ewigkeit geschrieben habe, sind hier mal die notwendigen Schritte. 

 

Der Code ist in Go geschrieben, ihr braucht also eine halbwegs aktuelle Version davon (gibt es für Windows/Linux/Mac). Ich habe es mit Go 1.19 auf einem Mac getestet.

 

Legt zunächst ein neues, leeres Verzeichnis an, bspw. mit dem Namen "consors-api". Den Code speichert ihr darin in der Datei "main.go", da das immer der Startpunkt für den Go-Compiler ist. Als nächstes kümmern wir uns um die Abhängigkeiten.

 

Ihr braucht die sog. Protobuf-Dateien, die das Datenformat der Consors-API beschreiben. Diese findet Ihr hier: https://www.consorsbank.de/ev/Wertpapierhandel/Depot-Software/Trading-Software/ActiveTrader#API

Ladet Euch am besten die CSharp/Net Version runter, da sie kleiner ist.

Wenn Ihr sie entpackt findet Ihr darin einen Ordner namens "Proto", in dem mehrere Dateien mit der Endung ".proto" liege (derzeit neun, könnte sich aber in Zukunft ändern).

 

In dem Ordner, wo Ihr eben die Datei "main.go" gespeichert habt, erstellt Ihr nun einen neuen Unterordner mit dem Namen "consors" (genau so, nicht anders) und kopiert alle ".proto"-Dateien dort hinein. Nun geht Ihr in dieses neue Verzeichnis und führt dort folgendes Kommando aus:

 

# protoc --go_out=. *.proto

 

Wenn das erfolgreich gelaufen ist, solltet Ihr nun zu jeder ".proto"-Datei ein Gegenstück mit der Endung ".pb.go" haben.

Dieser Schritt ist zwingend notwendig, denn nur mit den ".pb.go"-Dateien ist das Go-Programm nachher in der Lage, das Datenformat der Consors API zu verstehen.

 

Wenn das geschafft ist, fehlen nun nur noch die anderen Abhängigkeiten. Diese könnt Ihr über "go get" einfach herunterladen.

 

# go get golang.org/x/net/context

# go get google.golang.org/grpc

# go get google.golang.org/grpc/credentials

# go get github.com/davecgh/go-spew/spew

# go get github.com/DavidGamba/go-getoptions

# go get github.com/PuerkitoBio/goquery

 

Jetzt könnt Ihr das Go-Programm endlich starten:

 

# GO111MODULE=off go run main.go

 

Die GO111-Variable ist wichtig, weil Ihr sonst Fehlermeldungen bekommt und das Programm nicht startet. Es sagt Go schlicht, dass es den alten Prozess zum Laden von Modulen verwenden soll, nicht den neuen.

 

Das Programm wird nun versuchen, sich zur laufenden ActiveTrader-Instanz zu verbinden. Wenn Euer Port dafür nicht 40443 ist, müsst Ihr Zeile 37 in main.go anpassen. Mit dem Parameter "--token" könnt Ihr den Token (quasi das Passwort) übergeben, das ActiveTrader für API-Verbindungen erwartet. Wenn Ihr das nicht macht, wird das Programm es mit dem Token "foobar" probieren.

 

Viel Erfolg!


Aufsteiger
Beiträge: 2
Registriert: 06.01.2020
Vielen Dank
0 Likes
Antworten