diff --git a/docs/de/docs/features.md b/docs/de/docs/features.md
index 8fdf42622..162b3fb22 100644
--- a/docs/de/docs/features.md
+++ b/docs/de/docs/features.md
@@ -1,21 +1,21 @@
-# Merkmale
+# Merkmale { #features }
-## FastAPI Merkmale
+## FastAPI Merkmale { #fastapi-features }
**FastAPI** ermöglicht Ihnen Folgendes:
-### Basiert auf offenen Standards
+### Basiert auf offenen Standards { #based-on-open-standards }
* OpenAPI für die Erstellung von APIs, inklusive Deklarationen von Pfad-Operationen, Parametern, Requestbodys, Sicherheit, usw.
* Automatische Dokumentation der Datenmodelle mit JSON Schema (da OpenAPI selbst auf JSON Schema basiert).
* Um diese Standards herum entworfen, nach sorgfältigem Studium. Statt einer nachträglichen Schicht darüber.
* Dies ermöglicht auch automatische **Client-Code-Generierung** in vielen Sprachen.
-### Automatische Dokumentation
+### Automatische Dokumentation { #automatic-docs }
Interaktive API-Dokumentation und erkundbare Web-Benutzeroberflächen. Da das Framework auf OpenAPI basiert, gibt es mehrere Optionen, zwei sind standardmäßig vorhanden.
-* Swagger UI, bietet interaktive Erkundung, testen und rufen Sie ihre API direkt im Webbrowser auf.
+* Swagger UI, bietet interaktive Erkundung, testen und rufen Sie Ihre API direkt im Webbrowser auf.

@@ -23,7 +23,7 @@ Interaktive API-Dokumentation und erkundbare Web-Benutzeroberflächen. Da das Fr

-### Nur modernes Python
+### Nur modernes Python { #just-modern-python }
Alles basiert auf **Python 3.8 Typ**-Deklarationen (dank Pydantic). Es muss keine neue Syntax gelernt werden, nur standardisiertes modernes Python.
@@ -32,13 +32,12 @@ Wenn Sie eine zweiminütige Auffrischung benötigen, wie man Python-Typen verwen
Sie schreiben Standard-Python mit Typen:
```Python
-from typing import List, Dict
from datetime import date
from pydantic import BaseModel
-# Deklarieren Sie eine Variable als ein `str`
-# und bekommen Sie Editor-Unterstütung innerhalb der Funktion
+# Deklarieren Sie eine Variable als ein str
+# und bekommen Sie Editor-Unterstützung innerhalb der Funktion
def main(user_id: str):
return user_id
@@ -64,25 +63,25 @@ second_user_data = {
my_second_user: User = User(**second_user_data)
```
-/// info
+/// info | Info
`**second_user_data` bedeutet:
-Nimm die Schlüssel-Wert-Paare des `second_user_data` Dicts und übergib sie direkt als Schlüsselwort-Argumente. Äquivalent zu: `User(id=4, name="Mary", joined="2018-11-30")`.
+Nimm die Schlüssel-Wert-Paare des `second_user_data` Dicts und übergebe sie direkt als Schlüsselwort-Argumente. Äquivalent zu: `User(id=4, name="Mary", joined="2018-11-30")`
///
-### Editor Unterstützung
+### Editor Unterstützung { #editor-support }
Das ganze Framework wurde so entworfen, dass es einfach und intuitiv zu benutzen ist; alle Entscheidungen wurden auf mehreren Editoren getestet, sogar vor der Implementierung, um die bestmögliche Entwicklererfahrung zu gewährleisten.
-In der letzten Python-Entwickler-Umfrage wurde klar, dass die meist genutzte Funktion die „Autovervollständigung“ ist.
+In den Python-Entwickler-Umfragen wird klar, dass die meist genutzte Funktion die „Autovervollständigung“ ist.
Das gesamte **FastAPI**-Framework ist darauf ausgelegt, das zu erfüllen. Autovervollständigung funktioniert überall.
Sie werden selten noch mal in der Dokumentation nachschauen müssen.
-So kann ihr Editor Sie unterstützen:
+So kann Ihr Editor Sie unterstützen:
* in Visual Studio Code:
@@ -96,19 +95,19 @@ Sie bekommen sogar Autovervollständigung an Stellen, an denen Sie dies vorher n
Nie wieder falsche Schlüsselnamen tippen, Hin und Herhüpfen zwischen der Dokumentation, Hoch- und Runterscrollen, um herauszufinden, ob es `username` oder `user_name` war.
-### Kompakt
+### Kompakt { #short }
Es gibt für alles sensible **Defaultwerte**, mit optionaler Konfiguration überall. Alle Parameter können feinjustiert werden, damit sie tun, was Sie benötigen, und die API definieren, die Sie brauchen.
Aber standardmäßig **„funktioniert einfach alles“**.
-### Validierung
+### Validierung { #validation }
* Validierung für die meisten (oder alle?) Python-**Datentypen**, hierzu gehören:
* JSON Objekte (`dict`).
* JSON Listen (`list`), die den Typ ihrer Elemente definieren.
* Strings (`str`) mit definierter minimaler und maximaler Länge.
- * Zahlen (`int`, `float`) mit Mindest- und Maximal-Werten, usw.
+ * Zahlen (`int`, `float`) mit Mindest- und Maximalwerten, usw.
* Validierung für mehr exotische Typen, wie:
* URL.
@@ -118,13 +117,13 @@ Aber standardmäßig **„funktioniert einfach alles“**.
Die gesamte Validierung übernimmt das gut etablierte und robuste **Pydantic**.
-### Sicherheit und Authentifizierung
+### Sicherheit und Authentifizierung { #security-and-authentication }
-Sicherheit und Authentifizierung ist integriert. Ohne Kompromisse bei Datenbanken oder Datenmodellen.
+Sicherheit und Authentifizierung sind integriert. Ohne Kompromisse bei Datenbanken oder Datenmodellen.
Alle in OpenAPI definierten Sicherheitsschemas, inklusive:
-* HTTP Basic Authentifizierung.
+* HTTP Basic.
* **OAuth2** (auch mit **JWT Tokens**). Siehe dazu das Tutorial zu [OAuth2 mit JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
* API Schlüssel in:
* Header-Feldern.
@@ -133,9 +132,9 @@ Alle in OpenAPI definierten Sicherheitsschemas, inklusive:
Zusätzlich alle Sicherheitsfunktionen von Starlette (inklusive **Session Cookies**).
-Alles als wiederverwendbare Tools und Komponenten gebaut, die einfach in ihre Systeme, Datenspeicher, relationalen und nicht-relationalen Datenbanken, usw., integriert werden können.
+Alles als wiederverwendbare Tools und Komponenten gebaut, die einfach in Ihre Systeme, Datenspeicher, relationale und nicht-relationale Datenbanken, usw., integriert werden können.
-### Einbringen von Abhängigkeiten (Dependency Injection)
+### Einbringen von Abhängigkeiten (Dependency Injection) { #dependency-injection }
FastAPI enthält ein extrem einfach zu verwendendes, aber extrem mächtiges Dependency Injection System.
@@ -146,19 +145,19 @@ FastAPI enthält ein extrem einfach zu verwendendes, aber extrem mächtiges Testabdeckung.
-* 100 % Typen annotiert.
+* 100 % Typen annotiert.
* Verwendet in Produktionsanwendungen.
-## Starlette's Merkmale
+## Starlette's Merkmale { #starlette-features }
**FastAPI** ist vollkommen kompatibel (und basiert auf) Starlette. Das bedeutet, wenn Sie eigenen Starlette Quellcode haben, funktioniert der.
@@ -176,23 +175,23 @@ Mit **FastAPI** bekommen Sie alles von **Starlette** (da FastAPI nur Starlette a
* 100 % Testabdeckung.
* 100 % Typen annotierte Codebasis.
-## Pydantic's Merkmale
+## Pydantic's Merkmale { #pydantic-features }
**FastAPI** ist vollkommen kompatibel (und basiert auf) Pydantic. Das bedeutet, wenn Sie eigenen Pydantic Quellcode haben, funktioniert der.
-Inklusive externer Bibliotheken, die auf Pydantic basieren, wie ORMs, ODMs für Datenbanken.
+Inklusive externer Bibliotheken, die auf Pydantic basieren, wie ORMs, ODMs für Datenbanken.
Daher können Sie in vielen Fällen das Objekt einer Anfrage **direkt zur Datenbank** schicken, weil alles automatisch validiert wird.
-Das gleiche gilt auch für die andere Richtung: Sie können in vielen Fällen das Objekt aus der Datenbank **direkt zum Client** schicken.
+Das gleiche gilt auch für die andere Richtung: Sie können in vielen Fällen das Objekt aus der Datenbank **direkt zum Client** senden.
Mit **FastAPI** bekommen Sie alle Funktionen von **Pydantic** (da FastAPI für die gesamte Datenverarbeitung Pydantic nutzt):
* **Kein Kopfzerbrechen**:
* Keine neue Schemadefinition-Mikrosprache zu lernen.
* Wenn Sie Pythons Typen kennen, wissen Sie, wie man Pydantic verwendet.
-* Gutes Zusammenspiel mit Ihrer/Ihrem **IDE/Linter/Gehirn**:
- * Weil Pydantics Datenstrukturen einfach nur Instanzen ihrer definierten Klassen sind; Autovervollständigung, Linting, mypy und ihre Intuition sollten alle einwandfrei mit ihren validierten Daten funktionieren.
+* Gutes Zusammenspiel mit Ihrer/Ihrem **IDE/Linter/Gehirn**:
+ * Weil Pydantics Datenstrukturen einfach nur Instanzen ihrer definierten Klassen sind; Autovervollständigung, Linting, mypy und Ihre Intuition sollten alle einwandfrei mit Ihren validierten Daten funktionieren.
* Validierung von **komplexen Strukturen**:
* Benutzung von hierarchischen Pydantic-Modellen, Python-`typing`s `List` und `Dict`, etc.
* Die Validierer erlauben es, komplexe Datenschemen klar und einfach zu definieren, überprüft und dokumentiert als JSON Schema.