Zum Inhalt

Schnittstellen

Hinweis

Eine Schnittstelle oder API (application programming interface) ergmöglicht den Zugriff auf Daten in einer bestimmten Form und Zustand. Dieser Zugriff kann wiederholt geschehen, sodass beispielsweise zwischenzeitliche Änderungen abgebildet werden könnten. Für den Zugriff auf viele Schnittstellen musst du nachweisen, dass du zum Zugriff berechtigt bist, ähnlich einer Eintrittskarte zum Kino. Diese Zugangsberechtigung erhältst du von den Mitarbeitenden des Lehrstuhls auf Anfrage.

Der Lehrstuhl selbst stellt eine Schnittstelle bereit, die für Personen nach vorheriger Absprache zugänglich ist. Dabei werden bestimmte Datenbereiche freigeschaltet. Den Zutritt ermöglicht ein sog. Token. Das ist ein einzigartiger Schlüssel (wie eine Eintrittskarte). Konkret ist das einfach eine etwas beliebig aussehende Zeichenkette.

Achtung

Dieses Token (und alle anderen) sollten nicht weitergegeben werden und dementsprechend auch nicht im Code committed werden

Um diese Token also nicht explizit in den Code zu schreiben, möchten wir sie kurz vor der Ausführung des Codes importieren. Das geschieht über sogenannte Umgebungsvariablen. Umgebungsvariablen ermöglichen das Einspeisen von Werten in Programme bei ihrer Ausführung. Das Ziel ist also Folgendes:

  1. Dein Token als (lokale) Umgebungsvariable festlegen.
  2. Diese Umgebungsvariable in das Skript zu importieren.
  3. Diese im Skript als Variable zu nutzen.

Zu 1. gibt es zwei Möglichkeiten der Festlegung:

Umgebungsvariablen über IDE

Viele IDEs ermöglichen eine Festlegung von Umgebungsvariablen, wenn Python ausgeführt wird. Falls du eine solche verwendest, findest du dazu online häufig eine Erklärung. Hier einige Erklärungsseiten für das Setzen von Umgebungsvariablen von verbreiteten IDEs:

  • Pycharm
  • VS Code
  • Spyder unterstützt anscheinend derzeit nicht das Setzen von Umgebungsvariablen.

.env

Neben den Möglichkeiten der IDE gibt es noch eine weitere Möglichkeit, die unabhängig funktioniert: Das Erstellen einer .env-Datei. Diese Datei besteht aus einer Liste von Umgebungsvariablen, die untereinander geschrieben werden. Das hat den Zweck, dass Token nicht in die Skripte und damit in die Versionierung aufgenommen werden. Diese Datei auf keinen Falls committen, sondern via .gitignore ausschließen.

Der Inhalt der .env sieht wie folgt aus:

WDC_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH
DSSCODE_TOKEN=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH

Weitere verwendete Variablen können darunter geschrieben werden. Variablen aus .env werden gegenüber allgemeinen Umgebungsvariablen priorisiert.

Hinweis

Hierfür ist das Package dotenv notwendig, welches vorab mit dem Package Manager deines Vertrauens installiert werden muss. Im Skript muss dann explizit load_dotenv() aufgerufen werden:

from dotenv import load_dotenv
load_dotenv()

Verwendung von Umgebungsvariablen

Um den Wert einer Umgebungsvariable in eine Python-Variable zu übertragen, können wir die Bordmittel von Python nutzen:

import os

# Hängt davon ab, wie dein Token bezeichnet ist
dsscode_token=os.getenv("DSSCODE_TOKEN")

Hinweis

Falls du eine .env-Datei verwendest, musst du erst mit load_dotenv() diese Datei importieren.

Damit wäre deine Umgebungsvariable DSSCODE_TOKEN in die Python-Variable dsscode_token übertragen und du kannst sie jetzt an die entsprechenden Methoden übergeben.