Zum Inhalt springen
Akinware
Editor mit geöffnetem Projekt und Dateibaum

Was ist FastAPI?

FastAPI ist das Python-Framework hinter vielen KI-Diensten und Datenauswertungen. Woher es kommt, wie es Schnittstellen baut und wann Django oder Flask die bessere Wahl sind, verständlich erklärt.

Lesezeit
9 Minuten
Autor
Samet Akin
Veröffentlicht

Was ist FastAPI?

FastAPI ist ein Framework zum Bauen von Schnittstellen, im Fachjargon APIs. Eine Schnittstelle ist ein vereinbarter Weg, auf dem zwei Programme Daten austauschen: Eine App fragt beim Server nach dem Lagerbestand, der Server antwortet mit Zahlen statt mit einer fertigen Seite. Solche Übergabepunkte stecken heute in fast jeder Software, vom Onlineshop bis zur Warenwirtschaft. FastAPI ist das Werkzeug, mit dem solche Übergabepunkte in Python entstehen.

Die Besonderheit liegt darin, wie wenig doppelte Arbeit dabei anfällt. In Python lässt sich am Code notieren, welche Daten eine Funktion erwartet, etwa eine Kundennummer als Text und einen Betrag als Zahl. FastAPI liest genau diese Angaben und macht daraus zwei Dinge: eine Prüfung, die jede eingehende Anfrage kontrolliert, und eine Dokumentation, die immer zum Code passt. Was sonst drei getrennte Aufgaben wären, ist hier eine.

Diese wenigen Zeilen sind bereits eine funktionierende Schnittstelle. Schickt jemand eine Rechnung ohne Kundennummer oder mit einem Betrag, der keine Zahl ist, weist FastAPI die Anfrage ab und erklärt in der Antwort, welches Feld nicht passt. Der eigene Code muss sich darum nicht kümmern, er bekommt nur Daten zu sehen, die die Prüfung bestanden haben.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Rechnung(BaseModel):
    kundennummer: str
    betrag: float

@app.post("/rechnungen")
def lege_rechnung_an(rechnung: Rechnung):
    return {"status": "angelegt", "kunde": rechnung.kundennummer}

Wie funktioniert FastAPI?

FastAPI erfindet wenig selbst, es verbindet zwei bewährte Bausteine. Starlette übernimmt den Webteil, also das Entgegennehmen und Beantworten von Anfragen. Pydantic übernimmt die Datenprüfung anhand der Typangaben. FastAPI legt darüber eine Schicht, die beides zusammenführt und um die automatische Dokumentation ergänzt. Unter der Adresse /docs zeigt jeder FastAPI-Dienst eine Oberfläche, in der man jede Funktion der Schnittstelle direkt im Browser ausprobieren kann.

Der zweite Baustein ist die asynchrone Arbeitsweise. Ein klassischer Python-Dienst wartet, bis eine Anfrage fertig beantwortet ist, bevor er die nächste anfasst. FastAPI kann Wartezeiten überbrücken: Während eine Anfrage auf die Datenbank oder ein KI-Modell wartet, bedient der Dienst schon die nächste. Für Schnittstellen mit vielen gleichzeitigen Zugriffen macht das einen spürbaren Unterschied.

Im Betrieb läuft ein FastAPI-Dienst hinter einem Webserver, meist verpackt in einen Container, damit er auf jedem Server gleich startet. Wie das im Detail funktioniert, erklärt unser Artikel Was ist Docker?. Für den Auftraggeber wichtig: Der Dienst ist ein eigenes, kleines Programm, das unabhängig vom Rest der Software aktualisiert und skaliert werden kann.

@app.get("/artikel/{artikelnummer}")
def hole_artikel(artikelnummer: int):
    return lager.suche(artikelnummer)

# Ein Aufruf von /artikel/abc kommt gar nicht erst an:
# FastAPI meldet vorher, dass "abc" keine ganze Zahl ist.

Wozu wird FastAPI verwendet?

Überall dort, wo ein Ergebnis aus Python für andere Programme erreichbar sein soll. Python ist die Sprache der Datenwelt: Auswertungen, Dokumentenerkennung und der Umgang mit Sprachmodellen finden dort statt, weil die passenden Bibliotheken dort zuhause sind. FastAPI ist der kürzeste Weg, so ein Ergebnis in einen Dienst zu verwandeln. Typische Einsatzgebiete sind:

  • KI-Modelle als Dienst bereitstellen, etwa eine Texterkennung, die eine Weboberfläche befragt
  • Dokumente automatisch auslesen, zum Beispiel Lieferscheine oder Rechnungen aus Fotos und PDFs
  • Auswertungen und Prognosen, die eine Anwendung oder ein Dashboard abruft
  • Das Backend hinter einer Oberfläche in React oder hinter einer App
  • Kleine Zusatzdienste neben bestehender Software, ohne das Hauptsystem anzufassen

So setzen wir es bei Akinware auch ein: Wo ein Modell oder eine Auswertung in Python läuft, stellen wir sie mit FastAPI als Schnittstelle bereit. Die Schnittstelle prüft die Anfragen, begrenzt die Last und protokolliert, was hineingeht und herauskommt. Mehr dazu steht auf unserer Seite zu KI und Automatisierung.

Die Geschichte von FastAPI

FastAPI ist das Werk eines einzelnen Entwicklers. Sebastián Ramírez, ein Kolumbianer, der lange in Deutschland gearbeitet hat, suchte für seine Projekte ein Framework, das Typprüfung, Dokumentation und Geschwindigkeit zusammenbringt. Weil er es nicht fand, baute er es selbst und veröffentlichte es 2018 als Open Source. Der Zeitpunkt war günstig: Kurz darauf begann der große Aufschwung des maschinellen Lernens, und genau diese Teams brauchten ein Werkzeug wie dieses.

Erschienen
2018
Entwickelt von
Sebastián Ramírez und Gemeinschaft
Sprache
Python
Lizenz
MIT, kostenfrei nutzbar
Verbreitung
Unter den meistgenutzten Python-Web-Frameworks

Vom Nebenprojekt zum Standardwerkzeug

Zwei Bildschirme mit Code in einem dunklen Büro

Veröffentlichung

Sebastián Ramírez stellt FastAPI auf GitHub. Das Framework kombiniert vorhandene Bausteine zu etwas Neuem: Typprüfung und Dokumentation entstehen aus demselben Code.

2018

Was FastAPI nicht kann

FastAPI ist bewusst schmal gehalten. Es liefert Schnittstellen und sonst nichts. Wer eine komplette Anwendung erwartet, wie sie andere Frameworks mitbringen, muss vieles selbst ergänzen oder ein anderes Werkzeug wählen. Die wichtigsten Grenzen:

  • Es erzeugt keine Seiten und keine Oberflächen, davor gehört immer eine eigene Weboberfläche oder App
  • Es bringt keinen Verwaltungsbereich und keine Benutzerverwaltung mit, anders als etwa Django
  • Es bindet euch an Python: Ohne jemanden, der die Sprache betreut, wird der Dienst zur Insel
  • Für eine klassische Firmenwebseite mit Texten und Bildern ist es schlicht das falsche Werkzeug

Keiner dieser Punkte ist ein Mangel, sie beschreiben nur den Zuschnitt. FastAPI will ein gutes Teil in einem größeren System sein, kein System für alles.

FastAPI, Django oder Flask?

Wer nach Python im Web sucht, stößt auf drei Namen. Django ist das Komplettpaket: Datenmodell, Benutzerverwaltung und ein fertiger Verwaltungsbereich, gedacht für ganze Anwendungen aus einer Hand. Flask ist das Gegenteil, ein sehr kleiner Kern, um den man alles selbst herum baut. FastAPI liegt dazwischen und hat einen klaren Schwerpunkt: Schnittstellen. Als Faustregel:

  • Django, wenn Python die komplette Anwendung tragen soll, inklusive Seiten und Verwaltung
  • Flask, wenn ein sehr kleiner Dienst reicht und das Team Flask schon kennt
  • FastAPI, wenn eine Schnittstelle gebraucht wird, besonders vor einem KI-Modell oder einer Auswertung
  • Bei neuen Schnittstellen-Projekten spricht wenig für Flask, weil FastAPI Prüfung und Dokumentation kostenlos dazuliefert

In der Praxis schließen sich die drei nicht aus. Ein gewachsenes Django-System bekommt oft einen FastAPI-Dienst zur Seite gestellt, der genau eine Aufgabe übernimmt, etwa die Dokumentenerkennung. Das Hauptsystem bleibt unangetastet, der neue Dienst lässt sich getrennt betreiben und bei Bedarf wieder abschalten.

FastAPI aus Kundensicht

Für Auftraggeber zählt an FastAPI vor allem die Dokumentation, die sich nicht abhängen lässt. Bei vielen Projekten veraltet die Beschreibung der Schnittstelle nach dem ersten Jahr, und beim Wechsel des Dienstleisters beginnt die Archäologie. Bei FastAPI entsteht die Beschreibung aus dem Code selbst, sie ist also zwangsläufig aktuell. Ein neues Team öffnet die Oberfläche unter /docs und sieht, was der Dienst kann. Das senkt die Kosten genau an der Stelle, an der Projekte sonst teuer werden.

Dagegen steht ein ehrlicher Punkt: Ein FastAPI-Dienst ist ein zusätzliches Stück Software, das betrieben, überwacht und aktualisiert werden will. Lizenzkosten fallen keine an, die Lizenz ist MIT und damit auch im Geschäftsbetrieb frei. Aber Serverkosten und Wartung bleiben, und wenn im Haus niemand Python kann, entsteht eine Abhängigkeit vom Dienstleister. Wir sprechen das vor dem Projekt an, nicht danach, und planen den Betrieb bei Bedarf über unsere Webanwendungs-Betreuung mit ein.

Ist FastAPI die Zukunft?

Für Schnittstellen in Python ist FastAPI heute die naheliegende Wahl, und daran wird sich so schnell wenig ändern. Das Framework ist eng mit dem Aufstieg der KI verbunden: Solange Modelle und Auswertungen in Python entstehen, braucht es einen Weg, sie erreichbar zu machen, und dieser Weg heißt derzeit meistens FastAPI.

Ehrlich bleibt aber auch: FastAPI ist ein Spezialist. Es wird keine kompletten Anwendungen übernehmen und keine Frameworks wie Django verdrängen, das ist gar nicht sein Anspruch. Wer heute darauf setzt, wählt kein Experiment, sondern ein etabliertes Werkzeug mit großer Gemeinschaft, sollte aber wissen, wofür es gedacht ist und wofür nicht. Die Details zu unserem Einsatz stehen auf der Seite zur FastAPI-Entwicklung.

Was FastAPI stark macht

Beleuchtete Tastatur vor einem Bildschirm mit einer Oberfläche

Geprüfte Daten

Jede Anfrage wird gegen die Typangaben im Code geprüft, bevor sie verarbeitet wird. Fehlerhafte Daten kommen gar nicht erst durch.

Aufgeschlagenes Handbuch mit Schaubildern auf einem Schreibtisch

Doku ohne Pflege

Die Beschreibung der Schnittstelle entsteht aus dem Code und ist deshalb immer aktuell. Unter /docs lässt sich jede Funktion direkt ausprobieren.

Bildschirm mit zwei Anwendungen, die über Pfeile verbunden sind

Verbindet Systeme

FastAPI stellt Python-Ergebnisse jedem anderen Programm zur Verfügung, von der Weboberfläche bis zur Warenwirtschaft. Ein Dienst, viele Abnehmer.

Bildschirm mit einem Ablaufdiagramm aus verbundenen Knoten

Zuhause der KI-Welt

Modelle und Auswertungen entstehen in Python, und FastAPI ist dort der kürzeste Weg zur Schnittstelle. Deshalb steckt es hinter vielen KI-Diensten.

Was wir mit FastAPI bauen

FastAPI ist bei uns das Bindeglied zwischen Python und dem Rest eures Systems. Diese Leistungen hängen direkt damit zusammen.

  • Notizbuch und Taschenrechner neben einem Laptop mit Diagramm

    KI und Automatisierung

    Dokumente auslesen, Texte auswerten, Abläufe automatisieren: Wo ein Modell in Python arbeitet, stellt FastAPI es eurer Software zur Verfügung.
  • Bildschirm mit einem Dashboard voller Diagramme und Kennzahlen

    Webanwendungen

    Portale und Dashboards, die ihre Daten aus geprüften Schnittstellen beziehen. Die Oberfläche bleibt schnell, die Logik liegt im Dienst dahinter.
  • Schaubild mit einem Server, einer Wolke und Pfeilen dazwischen

    Cloud

    FastAPI-Dienste laufen im Container und lassen sich bei Bedarf vervielfachen. Wir richten Betrieb und Überwachung passend zur Last ein.

Häufige Fragen

Was kostet FastAPI?

Das Framework selbst nichts, es steht unter der MIT-Lizenz und ist auch im Geschäftsbetrieb frei nutzbar. Kosten entstehen für die Entwicklung des Dienstes und für den Server, auf dem er läuft. Bei KI-Diensten kommt gegebenenfalls die Rechenleistung für das Modell dazu.

Ist FastAPI schwer zu lernen?

Für Entwickler mit Python-Kenntnissen nicht. Eine erste Schnittstelle steht in wenigen Zeilen, und die offizielle Anleitung gilt als eine der besten ihrer Art. Anspruchsvoller wird es beim Betrieb, also bei Themen wie Lastverteilung und Überwachung, aber das gilt für jeden Web-Dienst.

Was ist der Unterschied zwischen FastAPI und Flask?

Flask ist älter und bewusst minimal: ein kleiner Kern, alles Weitere kommt aus Erweiterungen. FastAPI bringt Datenprüfung, Dokumentation und asynchrone Verarbeitung von Haus aus mit. Für neue Schnittstellen ist FastAPI meist die bessere Wahl, Flask bleibt in bestehenden Projekten verbreitet.

Wer nutzt FastAPI?

Unter anderem Uber, Netflix und Microsoft haben den Einsatz öffentlich beschrieben. Dazu kommt eine große Zahl an KI-Startups und Datenteams, weil FastAPI dort zum Standardwerkzeug geworden ist. Wir nutzen es überall dort, wo eine Auswertung oder ein Modell in Python läuft.

Ist FastAPI sicher?

Die eingebaute Datenprüfung fängt eine ganze Klasse von Fehlern ab, weil nur Daten durchkommen, die dem erwarteten Format entsprechen. Für Anmeldung, Berechtigungen und Verschlüsselung bringt FastAPI Werkzeuge mit, einrichten muss sie aber der Entwickler. Sicherheit hängt hier wie überall an der Umsetzung, nicht am Framework.

Brauche ich FastAPI für meine Webseite?

Für eine normale Firmenwebseite nicht. FastAPI wird interessant, sobald etwas berechnet, erkannt oder ausgewertet werden soll, etwa Dokumente automatisch auslesen oder eine Preisprognose. Ob sich das lohnt, hängt am Anwendungsfall, nicht an der Technik.

Was bedeutet eigentlich API?

API steht für Application Programming Interface, auf Deutsch Programmierschnittstelle. Gemeint ist ein vereinbarter Weg, über den Programme Daten austauschen, ohne dass ein Mensch dazwischen sitzt. Wenn eure App den Lagerbestand anzeigt, hat sie ihn über eine API vom Server geholt.

Weiterlesen

  • Editor mit geöffnetem Projekt und Dateibaum

    Was ist Python?

    Python ist die Programmiersprache hinter Automatisierungen, Datenauswertungen und den meisten KI-Werkzeugen. Warum sie sich fast wie Englisch liest und wo ihre Grenzen liegen, verständlich erklärt.
  • Schreibtisch mit Laptop, Tasse und Notizblock

    Was ist Payload?

    Payload ist ein Headless-CMS in TypeScript, das direkt in einer Next.js-Anwendung mitläuft: Webseite und Inhalte sind ein Projekt. Wie das funktioniert, woher es kommt und wann Strapi oder WordPress besser passen, verständlich erklärt.
  • Hand hält ein Smartphone mit einer Auswertungsansicht

    Was ist .NET MAUI?

    Mit .NET MAUI entstehen Apps für Android, iOS, Windows und macOS aus einem einzigen C#-Projekt. Woher das Framework kommt, was es von React Native unterscheidet und wann es sich lohnt, verständlich erklärt.

Kontakt und kostenlose Beratung

Hände tippen auf einer Laptop-Tastatur, daneben eine Tasse Kaffee
Telefon0208 78015410E-Mailinfo@akinware.com
Adresse
Huyssenstraße 6G, 46119 Oberhausen
Worum geht es