# Geschichte, Design und Zukunft { #history-design-and-future }
Vor einiger Zeit fragte <ahref="https://github.com/fastapi/fastapi/issues/3#issuecomment-454956920"class="external-link"target="_blank">ein **FastAPI**-Benutzer</a>:
> Was ist die Geschichte dieses Projekts? Es scheint, als wäre es in ein paar Wochen aus dem Nichts zu etwas Großartigem geworden [...]
> Was ist die Geschichte dieses Projekts? Es scheint aus dem Nichts in ein paar Wochen zu etwas Großartigem geworden zu sein [...]
Hier ist ein wenig über diese Geschichte.
## Alternativen
## Alternativen { #alternatives }
Ich habe seit mehreren Jahren APIs mit komplexen Anforderungen (maschinelles Lernen, verteilte Systeme, asynchrone Jobs, NoSQL-Datenbanken, usw.) erstellt und leitete mehrere Entwicklerteams.
@ -28,7 +28,7 @@ Aber irgendwann gab es keine andere Möglichkeit, als etwas zu schaffen, das all
</blockquote>
## Investigation
## Untersuchung { #investigation }
Durch die Nutzung all dieser vorherigen Alternativen hatte ich die Möglichkeit, von allen zu lernen, Ideen aufzunehmen und sie auf die beste Weise zu kombinieren, die ich für mich und die Entwicklerteams, mit denen ich zusammengearbeitet habe, finden konnte.
@ -38,13 +38,13 @@ Der beste Ansatz bestand außerdem darin, bereits bestehende Standards zu nutzen
Bevor ich also überhaupt angefangen habe, **FastAPI** zu schreiben, habe ich mehrere Monate damit verbracht, die Spezifikationen für OpenAPI, JSON Schema, OAuth2, usw. zu studieren und deren Beziehungen, Überschneidungen und Unterschiede zu verstehen.
## Design
## Design { #design }
Dann habe ich einige Zeit damit verbracht, die Entwickler-„API“ zu entwerfen, die ich als Benutzer haben wollte (als Entwickler, welcher FastAPI verwendet).
Ich habe mehrere Ideen in den beliebtesten Python-Editoren getestet: PyCharm, VS Code, Jedi-basierte Editoren.
Laut der letzten <ahref="https://www.jetbrains.com/research/python-developers-survey-2018/#development-tools"class="external-link"target="_blank">Python-Entwickler-Umfrage</a>, deckt das etwa 80 % der Benutzer ab.
Laut der letzten <ahref="https://www.jetbrains.com/research/python-developers-survey-2018/#development-tools"class="external-link"target="_blank">Python-Entwickler-Umfrage</a> deckt das etwa 80 % der Benutzer ab.
Das bedeutet, dass **FastAPI** speziell mit den Editoren getestet wurde, die von 80 % der Python-Entwickler verwendet werden. Und da die meisten anderen Editoren in der Regel ähnlich funktionieren, sollten alle diese Vorteile für praktisch alle Editoren funktionieren.
@ -52,19 +52,19 @@ Auf diese Weise konnte ich die besten Möglichkeiten finden, die Codeverdoppelun
Alles auf eine Weise, die allen Entwicklern das beste Entwicklungserlebnis bot.
## Anforderungen
## Anforderungen { #requirements }
Nachdem ich mehrere Alternativen getestet hatte, entschied ich, dass ich <ahref="https://pydantic-docs.helpmanual.io/"class="external-link"target="_blank">**Pydantic**</a> wegen seiner Vorteile verwenden würde.
Nachdem ich mehrere Alternativen getestet hatte, entschied ich, dass ich <ahref="https://docs.pydantic.dev/"class="external-link"target="_blank">**Pydantic**</a> wegen seiner Vorteile verwenden würde.
Dann habe ich zu dessen Code beigetragen, um es vollständig mit JSON Schema kompatibel zu machen, und so verschiedene Möglichkeiten zum Definieren von einschränkenden Deklarationen (Constraints) zu unterstützen, und die Editorunterstützung (Typprüfungen, Codevervollständigung) zu verbessern, basierend auf den Tests in mehreren Editoren.
Während der Entwicklung habe ich auch zu <ahref="https://www.starlette.io/"class="external-link"target="_blank">**Starlette**</a> beigetragen, der anderen Schlüsselanforderung.
## Entwicklung
## Entwicklung { #development }
Als ich mit der Erstellung von **FastAPI** selbst begann, waren die meisten Teile bereits vorhanden, das Design definiert, die Anforderungen und Tools bereit und das Wissen über die Standards und Spezifikationen klar und frisch.
## Zukunft
## Zukunft { #future }
Zu diesem Zeitpunkt ist bereits klar, dass **FastAPI** mit seinen Ideen für viele Menschen nützlich ist.