Starting with this commit and in the remaining two folders, I translate the documents in the order they appear in the documentation. Should have done that from the beginning, as it helps the LLM learning things (I guess).
**FastAPI** hat ein sehr mächtiges, aber intuitives **<abbrtitle="Dependency Injection – Einbringen von Abhängigkeiten: Auch bekannt als Komponenten, Ressourcen, Provider, Services, Injectables">Dependency Injection</abbr>** System.
**FastAPI** hat ein sehr mächtiges, aber intuitives **<abbrtitle="Einbringen von Abhängigkeiten: auch bekannt als Komponenten, Ressourcen, Provider, Services, Injectables">Dependency Injection</abbr>** System.
Es ist so konzipiert, sehr einfach zu verwenden zu sein und es jedem Entwickler sehr leicht zu machen, andere Komponenten mit **FastAPI** zu integrieren.
Es ist so konzipiert, sehr einfach zu verwenden zu sein und es jedem Entwickler sehr leicht zu machen, andere Komponenten mit **FastAPI** zu integrieren.
## Was ist „Dependency Injection“
## Was ist „Dependency Injection“ { #what-is-dependency-injection }
**„Dependency Injection“** bedeutet in der Programmierung, dass es für Ihren Code (in diesem Fall Ihre *Pfadoperation-Funktionen*) eine Möglichkeit gibt, Dinge zu deklarieren, die er verwenden möchte und die er zum Funktionieren benötigt: „Abhängigkeiten“ – „Dependencies“.
**„Dependency Injection“** bedeutet in der Programmierung, dass es für Ihren Code (in diesem Fall Ihre *Pfadoperation-Funktionen*) eine Möglichkeit gibt, Dinge zu deklarieren, die er verwenden möchte und die er zum Funktionieren benötigt: „Abhängigkeiten“ – „Dependencies“.
@ -19,13 +19,13 @@ Das ist sehr nützlich, wenn Sie:
All dies, während Sie Codeverdoppelung minimieren.
All dies, während Sie Codeverdoppelung minimieren.
## Erste Schritte
## Erste Schritte { #first-steps }
Sehen wir uns ein sehr einfaches Beispiel an. Es ist so einfach, dass es vorerst nicht sehr nützlich ist.
Sehen wir uns ein sehr einfaches Beispiel an. Es ist so einfach, dass es vorerst nicht sehr nützlich ist.
Aber so können wir uns besser auf die Funktionsweise des **Dependency Injection** Systems konzentrieren.
Aber so können wir uns besser auf die Funktionsweise des **Dependency Injection** Systems konzentrieren.
### Erstellen Sie eine Abhängigkeit (<abbrtitle="Das von dem abhängt, die zu verwendende Abhängigkeit">„Dependable“</abbr>)
### Eine Abhängigkeit erstellen, oder <abbrtitle="Das von dem abhängt, die zu verwendende Abhängigkeit">„Dependable“</abbr> { #create-a-dependency-or-dependable }
Konzentrieren wir uns zunächst auf die Abhängigkeit - die Dependency.
Konzentrieren wir uns zunächst auf die Abhängigkeit - die Dependency.
@ -50,21 +50,21 @@ In diesem Fall erwartet diese Abhängigkeit:
Und dann wird einfach ein `dict` zurückgegeben, welches diese Werte enthält.
Und dann wird einfach ein `dict` zurückgegeben, welches diese Werte enthält.
/// info
/// info | Info
FastAPI unterstützt (und empfiehlt die Verwendung von) `Annotated` seit Version 0.95.0.
FastAPI unterstützt (und empfiehlt die Verwendung von) `Annotated` seit Version 0.95.0.
Wenn Sie eine ältere Version haben, werden Sie Fehler angezeigt bekommen, wenn Sie versuchen, `Annotated` zu verwenden.
Wenn Sie eine ältere Version haben, werden Sie Fehler angezeigt bekommen, wenn Sie versuchen, `Annotated` zu verwenden.
Bitte [aktualisieren Sie FastAPI](../../deployment/versions.md#upgrade-der-fastapi-versionen){.internal-link target=_blank} daher mindestens zu Version 0.95.1, bevor Sie `Annotated` verwenden.
Bitte [aktualisieren Sie FastAPI](../../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank} daher mindestens zu Version 0.95.1, bevor Sie `Annotated` verwenden.
### Deklarieren der Abhängigkeit im <abbrtitle="Das Abhängige, der Verwender der Abhängigkeit">„Dependant“</abbr>
### Die Abhängigkeit im <abbrtitle="Das Abhängige, der Verwender der Abhängigkeit">„Dependant“</abbr> deklarieren { #declare-the-dependency-in-the-dependant }
So wie auch `Body`, `Query`, usw., verwenden Sie `Depends` mit den Parametern Ihrer *Pfadoperation-Funktion*:
So wie auch `Body`, `Query`, usw., verwenden Sie `Depends` mit den Parametern Ihrer *Pfadoperation-Funktion*:
In den Beispielen oben sehen Sie, dass es ein kleines bisschen **Codeverdoppelung** gibt.
In den Beispielen oben sehen Sie, dass es ein kleines bisschen **Codeverdoppelung** gibt.
@ -139,7 +139,7 @@ Die Abhängigkeiten funktionieren weiterhin wie erwartet, und das **Beste daran*
Das ist besonders nützlich, wenn Sie es in einer **großen Codebasis** verwenden, in der Sie in **vielen *Pfadoperationen*** immer wieder **dieselben Abhängigkeiten** verwenden.
Das ist besonders nützlich, wenn Sie es in einer **großen Codebasis** verwenden, in der Sie in **vielen *Pfadoperationen*** immer wieder **dieselben Abhängigkeiten** verwenden.
## `async` oder nicht `async`
## `async` oder nicht `async` { #to-async-or-not-to-async }
Da Abhängigkeiten auch von **FastAPI** aufgerufen werden (so wie Ihre *Pfadoperation-Funktionen*), gelten beim Definieren Ihrer Funktionen die gleichen Regeln.
Da Abhängigkeiten auch von **FastAPI** aufgerufen werden (so wie Ihre *Pfadoperation-Funktionen*), gelten beim Definieren Ihrer Funktionen die gleichen Regeln.
@ -151,11 +151,11 @@ Es spielt keine Rolle. **FastAPI** weiß, was zu tun ist.
/// note | Hinweis
/// note | Hinweis
Wenn Ihnen das nichts sagt, lesen Sie den [Async: *„In Eile?“*](../../async.md#in-eile){.internal-link target=_blank}-Abschnitt über `async` und `await` in der Dokumentation.
Wenn Ihnen das nichts sagt, lesen Sie den [Async: *„In Eile?“*](../../async.md#in-a-hurry){.internal-link target=_blank}-Abschnitt über `async` und `await` in der Dokumentation.
///
///
## Integriert in OpenAPI
## Integriert in OpenAPI { #integrated-with-openapi }
Alle Requestdeklarationen, -validierungen und -anforderungen Ihrer Abhängigkeiten (und Unterabhängigkeiten) werden in dasselbe OpenAPI-Schema integriert.
Alle Requestdeklarationen, -validierungen und -anforderungen Ihrer Abhängigkeiten (und Unterabhängigkeiten) werden in dasselbe OpenAPI-Schema integriert.
@ -163,7 +163,7 @@ Die interaktive Dokumentation enthält also auch alle Informationen aus diesen A
<imgsrc="/img/tutorial/dependencies/image01.png">
<imgsrc="/img/tutorial/dependencies/image01.png">
## Einfache Verwendung
## Einfache Verwendung { #simple-usage }
Näher betrachtet, werden *Pfadoperation-Funktionen* deklariert, um verwendet zu werden, wann immer ein *Pfad* und eine *Operation* übereinstimmen, und dann kümmert sich **FastAPI** darum, die Funktion mit den richtigen Parametern aufzurufen, die Daten aus der Anfrage extrahierend.
Näher betrachtet, werden *Pfadoperation-Funktionen* deklariert, um verwendet zu werden, wann immer ein *Pfad* und eine *Operation* übereinstimmen, und dann kümmert sich **FastAPI** darum, die Funktion mit den richtigen Parametern aufzurufen, die Daten aus der Anfrage extrahierend.
@ -181,7 +181,7 @@ Andere gebräuchliche Begriffe für dieselbe Idee der „Abhängigkeitsinjektion
* Injectables
* Injectables
* Komponenten
* Komponenten
## **FastAPI**-Plugins
## **FastAPI**-Plugins { #fastapi-plug-ins }
Integrationen und „Plugins“ können mit dem **Dependency Injection** System erstellt werden. Aber tatsächlich besteht **keine Notwendigkeit, „Plugins“ zu erstellen**, da es durch die Verwendung von Abhängigkeiten möglich ist, eine unendliche Anzahl von Integrationen und Interaktionen zu deklarieren, die dann für Ihre *Pfadoperation-Funktionen* verfügbar sind.
Integrationen und „Plugins“ können mit dem **Dependency Injection** System erstellt werden. Aber tatsächlich besteht **keine Notwendigkeit, „Plugins“ zu erstellen**, da es durch die Verwendung von Abhängigkeiten möglich ist, eine unendliche Anzahl von Integrationen und Interaktionen zu deklarieren, die dann für Ihre *Pfadoperation-Funktionen* verfügbar sind.
@ -189,7 +189,7 @@ Und Abhängigkeiten können auf sehr einfache und intuitive Weise erstellt werde
Beispiele hierfür finden Sie in den nächsten Kapiteln zu relationalen und NoSQL-Datenbanken, Sicherheit usw.
Beispiele hierfür finden Sie in den nächsten Kapiteln zu relationalen und NoSQL-Datenbanken, Sicherheit usw.
<abbrtitle="auch bekannt als: Endpunkte, Routen">Pfad</abbr>
<abbrtitle="auch bekannt als: Endpunkte, Routen">Pfad</abbr>
<abbrtitle="Programm das auf Fehler im Code prüft">Linter</abbr>
<abbrtitle="Programm das auf Fehler im Code prüft">Linter</abbr>
<abbrtitle="Konvertieren des Strings eines HTTP-Requests in Python-Daten">„Parsing“</abbr>
<abbrtitle="Konvertieren des Strings eines HTTP-Requests in Python-Daten">„Parsen“</abbr>
<abbrtitle="vor 2023-03">0.95.0</abbr>
<abbrtitle="vor 2023-03">0.95.0</abbr>
<abbrtitle="2023-08-26">zum Zeitpunkt als das hier geschrieben wurde</abbr>
<abbrtitle="2023-08-26">zum Zeitpunkt als das hier geschrieben wurde</abbr>
@ -119,6 +119,29 @@ Result (German):
{translation of explanation}
{translation of explanation}
If the term, which the HTML abbr element wraps, stays English in the translation, but it also has a translation, whose knowledge improves the explanation, then let the title attribute be that translation, followed by a colon (`:`), followed by the translation of the title attribute.
Examples:
Source (English):
<abbrtitle="also known as components, resources, providers, services, injectables">Dependency Injection</abbr>
Result (German):
<abbrtitle="Einbringen von Abhängigkeiten: auch bekannt als Komponenten, Ressourcen, Provider, Services, Injectables">Dependency Injection</abbr>
Conversion scheme title attribute:
Source (English):
{explanation}
Result (German):
{translation of term which abbr wraps}: {translation of explanation}
4.3) If the title attribute gives the full phrase for an abbrevation, followed by a colon (`:`) or a comma (`,`), followed by an explanation, then keep the phrase, append a long dash (`–`), followed by the translation of the phrase, followed by a colon (`:`), followed by the translation of the explanation.
4.3) If the title attribute gives the full phrase for an abbrevation, followed by a colon (`:`) or a comma (`,`), followed by an explanation, then keep the phrase, append a long dash (`–`), followed by the translation of the phrase, followed by a colon (`:`), followed by the translation of the explanation.
Examples:
Examples:
@ -252,6 +275,7 @@ Ich versuche nicht, alles einzudeutschen. Das bezieht sich besonders auf Begriff