From df2b553556846400eb452d67b185a8eff4b6413d Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Sat, 14 Oct 2023 09:39:41 +0200 Subject: [PATCH 1/7] =?UTF-8?q?=F0=9F=8C=90=20Add=20German=20translation?= =?UTF-8?q?=20for=20`docs/de/docs/tutorial/security/get-current-user.md`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Full translation * In sync with current docs/en/docs/tutorial/security/get-current-user.md * Google Translate used * Manually checked * Checked for errors using LanguageTool --- .../tutorial/security/get-current-user.md | 288 ++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 docs/de/docs/tutorial/security/get-current-user.md diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md new file mode 100644 index 0000000000000..a779f31fecdbb --- /dev/null +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -0,0 +1,288 @@ +# Aktuellen Nutzer abrufen + +Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injection System basiert) der *Pfadoperation-Funktion* ein `token` vom Typ `str` überreicht: + +=== "Python 3.9+" + + ```Python hl_lines="12" + {!> ../../../docs_src/security/tutorial001_an_py39.py!} + ``` + +=== "Python 3.6+" + + ```Python hl_lines="11" + {!> ../../../docs_src/security/tutorial001_an.py!} + ``` + +=== "Python 3.6+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="10" + {!> ../../../docs_src/security/tutorial001.py!} + ``` + +Aber das ist immer noch nicht so nützlich. + +Lassen wir es uns den aktuellen Nutzer überreichen. + +## Ein Nutzer-Modell erstellen + +Erstellen wir zunächst ein Pydantic-Nutzer-Modell. + +So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch überall sonst verwenden: + +=== "Python 3.10+" + + ```Python hl_lines="5 12-16" + {!> ../../../docs_src/security/tutorial002_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="5 12-16" + {!> ../../../docs_src/security/tutorial002_an_py39.py!} + ``` + +=== "Python 3.6+" + + ```Python hl_lines="5 13-17" + {!> ../../../docs_src/security/tutorial002_an.py!} + ``` + +=== "Python 3.10+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="3 10-14" + {!> ../../../docs_src/security/tutorial002_py310.py!} + ``` + +=== "Python 3.6+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="5 12-16" + {!> ../../../docs_src/security/tutorial002.py!} + ``` + +## Eine `get_current_user`-Abhängigkeit erstellen + +Erstellen wir eine Abhängigkeit `get_current_user`. + +Erinnern Sie sich, dass Abhängigkeiten Unterabhängigkeiten haben können? + +`get_current_user` wird seinerseits von `oauth2_scheme` abhängen, das wir zuvor erstellt haben. + +So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere neue Abhängigkeit `get_current_user` von der Unterabhängigkeit `oauth2_scheme` ein `token` vom Typ `str`: + +=== "Python 3.10+" + + ```Python hl_lines="25" + {!> ../../../docs_src/security/tutorial002_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="25" + {!> ../../../docs_src/security/tutorial002_an_py39.py!} + ``` + +=== "Python 3.6+" + + ```Python hl_lines="26" + {!> ../../../docs_src/security/tutorial002_an.py!} + ``` + +=== "Python 3.10+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="23" + {!> ../../../docs_src/security/tutorial002_py310.py!} + ``` + +=== "Python 3.6+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="25" + {!> ../../../docs_src/security/tutorial002.py!} + ``` + +## Den Nutzer holen + +`get_current_user` wird eine von uns erstellte (gefakte) Hilfsfunktion verwenden, welche ein Token vom Typ `str` entgegennimmt und unser Pydantic-`User`-Modell zurückgibt: + +=== "Python 3.10+" + + ```Python hl_lines="19-22 26-27" + {!> ../../../docs_src/security/tutorial002_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="19-22 26-27" + {!> ../../../docs_src/security/tutorial002_an_py39.py!} + ``` + +=== "Python 3.6+" + + ```Python hl_lines="20-23 27-28" + {!> ../../../docs_src/security/tutorial002_an.py!} + ``` + +=== "Python 3.10+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="17-20 24-25" + {!> ../../../docs_src/security/tutorial002_py310.py!} + ``` + +=== "Python 3.6+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="19-22 26-27" + {!> ../../../docs_src/security/tutorial002.py!} + ``` + +## Den aktuellen Nutzer einfügen + +Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der *Pfadoperation* verwenden: + +=== "Python 3.10+" + + ```Python hl_lines="31" + {!> ../../../docs_src/security/tutorial002_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="31" + {!> ../../../docs_src/security/tutorial002_an_py39.py!} + ``` + +=== "Python 3.6+" + + ```Python hl_lines="32" + {!> ../../../docs_src/security/tutorial002_an.py!} + ``` + +=== "Python 3.10+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="29" + {!> ../../../docs_src/security/tutorial002_py310.py!} + ``` + +=== "Python 3.6+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="31" + {!> ../../../docs_src/security/tutorial002.py!} + ``` + +Beachten Sie, dass wir als Typ von `current_user` das Pydantic-Modell `User` deklarieren. + +Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen helfen. + +!!! tip + Sie erinnern sich vielleicht, dass Requestbodys ebenfalls mit Pydantic-Modellen deklariert werden. + + Weil Sie `Depends` verwenden, wird **FastAPI** hier aber nicht verwirrt. + +!!! check + Die Art und Weise, wie dieses System von Abhängigkeiten konzipiert ist, ermöglicht es uns, verschiedene Abhängigkeiten (verschiedene "Dependables") zu haben, die alle ein `User`-Modell zurückgeben. + + Wir sind nicht darauf beschränkt, nur eine Abhängigkeit zu haben, die diesen Typ von Daten zurückgeben kann. + +## Andere Modelle + +Sie können jetzt den aktuellen Nutzer direkt in den *Pfadoperation-Funktionen* abrufen und die Sicherheitsmechanismen auf **Dependency Injection** Ebene handhaben, mittels `Depends`. + +Und Sie können alle Modelle und Daten für die Sicherheitsanforderungen verwenden (in diesem Fall ein Pydantic-Modell `User`). + +Sie sind jedoch nicht auf die Verwendung von bestimmten Datenmodellen, Klassen, oder Typen beschränkt. + +Möchten Sie eine `id` und eine `email` und keinen `username` in Ihrem Modell haben? Kein Problem. Sie können dieselben Tools verwenden. + +Möchten Sie nur ein `str` haben? Oder nur ein `dict`? Oder direkt eine Instanz eines Modells einer Datenbank-Klasse? Es funktioniert alles auf die gleiche Weise. + +Sie haben eigentlich keine Nutzer, die sich bei Ihrer Anwendung anmelden, sondern Roboter, Bots oder andere Systeme, die nur über ein Zugriffstoken verfügen? Auch hier funktioniert alles gleich. + +Verwenden Sie einfach jede Art von Modell, jede Art von Klasse, jede Art von Datenbank, die Sie für Ihre Anwendung benötigen. **FastAPI** deckt das alles mit seinem Dependency Injection System ab. + +## Codegröße + +Dieses Beispiel mag ausführlich erscheinen. Bedenken Sie, dass wir Sicherheit, Datenmodelle, Hilfsfunktionen und *Pfadoperationen* in derselben Datei vermischen. + +Aber hier ist der entscheidende Punkt. + +Der Code für Sicherheit und Dependency Injection wird einmal geschrieben. + +Sie können es so komplex gestalten, wie Sie möchten. Und dennoch haben Sie es nur einmal geschrieben, an einer einzigen Stelle. Mit all der Flexibilität. + +Aber Sie können Tausende von Endpunkten (*Pfadoperationen*) haben, die dasselbe Sicherheitssystem verwenden. + +Und alle (oder beliebige Teile davon) können Vorteil ziehen aus der Wiederverwendung dieser und anderer von Ihnen erstellter Abhängigkeiten. + +Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein: + +=== "Python 3.10+" + + ```Python hl_lines="30-32" + {!> ../../../docs_src/security/tutorial002_an_py310.py!} + ``` + +=== "Python 3.9+" + + ```Python hl_lines="30-32" + {!> ../../../docs_src/security/tutorial002_an_py39.py!} + ``` + +=== "Python 3.6+" + + ```Python hl_lines="31-33" + {!> ../../../docs_src/security/tutorial002_an.py!} + ``` + +=== "Python 3.10+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="28-30" + {!> ../../../docs_src/security/tutorial002_py310.py!} + ``` + +=== "Python 3.6+ nicht annotiert" + + !!! tip + Bevorzugen Sie die `Annotated`-Version, falls möglich. + + ```Python hl_lines="30-32" + {!> ../../../docs_src/security/tutorial002.py!} + ``` + +## Zusammenfassung + +Sie können jetzt den aktuellen Nutzer direkt in Ihrer *Pfadoperation-Funktion* abrufen. + +Wir haben bereits die Hälfte geschafft. + +Wir müssen jetzt nur noch eine *Pfadoperation* hinzufügen, mittels der der Nutzer/Client tatsächlich seinen `username` und `password` senden kann. + +Das kommt als nächstes. From 920f0720d97f025f62d883583bd6290f2267482b Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Tue, 17 Oct 2023 20:25:26 +0200 Subject: [PATCH 2/7] Sync with #10442 --- .../tutorial/security/get-current-user.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md index a779f31fecdbb..1b996e4e2f7e8 100644 --- a/docs/de/docs/tutorial/security/get-current-user.md +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -8,13 +8,13 @@ Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injectio {!> ../../../docs_src/security/tutorial001_an_py39.py!} ``` -=== "Python 3.6+" +=== "Python 3.8+" ```Python hl_lines="11" {!> ../../../docs_src/security/tutorial001_an.py!} ``` -=== "Python 3.6+ nicht annotiert" +=== "Python 3.8+ nicht annotiert" !!! tip Bevorzugen Sie die `Annotated`-Version, falls möglich. @@ -45,7 +45,7 @@ So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch üb {!> ../../../docs_src/security/tutorial002_an_py39.py!} ``` -=== "Python 3.6+" +=== "Python 3.8+" ```Python hl_lines="5 13-17" {!> ../../../docs_src/security/tutorial002_an.py!} @@ -60,7 +60,7 @@ So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch üb {!> ../../../docs_src/security/tutorial002_py310.py!} ``` -=== "Python 3.6+ nicht annotiert" +=== "Python 3.8+ nicht annotiert" !!! tip Bevorzugen Sie die `Annotated`-Version, falls möglich. @@ -91,7 +91,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere {!> ../../../docs_src/security/tutorial002_an_py39.py!} ``` -=== "Python 3.6+" +=== "Python 3.8+" ```Python hl_lines="26" {!> ../../../docs_src/security/tutorial002_an.py!} @@ -106,7 +106,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere {!> ../../../docs_src/security/tutorial002_py310.py!} ``` -=== "Python 3.6+ nicht annotiert" +=== "Python 3.8+ nicht annotiert" !!! tip Bevorzugen Sie die `Annotated`-Version, falls möglich. @@ -131,7 +131,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere {!> ../../../docs_src/security/tutorial002_an_py39.py!} ``` -=== "Python 3.6+" +=== "Python 3.8+" ```Python hl_lines="20-23 27-28" {!> ../../../docs_src/security/tutorial002_an.py!} @@ -146,7 +146,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere {!> ../../../docs_src/security/tutorial002_py310.py!} ``` -=== "Python 3.6+ nicht annotiert" +=== "Python 3.8+ nicht annotiert" !!! tip Bevorzugen Sie die `Annotated`-Version, falls möglich. @@ -171,7 +171,7 @@ Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der * {!> ../../../docs_src/security/tutorial002_an_py39.py!} ``` -=== "Python 3.6+" +=== "Python 3.8+" ```Python hl_lines="32" {!> ../../../docs_src/security/tutorial002_an.py!} @@ -186,7 +186,7 @@ Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der * {!> ../../../docs_src/security/tutorial002_py310.py!} ``` -=== "Python 3.6+ nicht annotiert" +=== "Python 3.8+ nicht annotiert" !!! tip Bevorzugen Sie die `Annotated`-Version, falls möglich. @@ -253,7 +253,7 @@ Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein {!> ../../../docs_src/security/tutorial002_an_py39.py!} ``` -=== "Python 3.6+" +=== "Python 3.8+" ```Python hl_lines="31-33" {!> ../../../docs_src/security/tutorial002_an.py!} @@ -268,7 +268,7 @@ Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein {!> ../../../docs_src/security/tutorial002_py310.py!} ``` -=== "Python 3.6+ nicht annotiert" +=== "Python 3.8+ nicht annotiert" !!! tip Bevorzugen Sie die `Annotated`-Version, falls möglich. From e7c69d75d63c91b0f0366da718f216069ce70544 Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Sun, 22 Oct 2023 18:19:49 +0200 Subject: [PATCH 3/7] "Tip" -> "Tipp" --- .../tutorial/security/get-current-user.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md index 1b996e4e2f7e8..b60e8a657e1ef 100644 --- a/docs/de/docs/tutorial/security/get-current-user.md +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -16,7 +16,7 @@ Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injectio === "Python 3.8+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="10" @@ -53,7 +53,7 @@ So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch üb === "Python 3.10+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="3 10-14" @@ -62,7 +62,7 @@ So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch üb === "Python 3.8+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="5 12-16" @@ -99,7 +99,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere === "Python 3.10+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="23" @@ -108,7 +108,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere === "Python 3.8+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="25" @@ -139,7 +139,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere === "Python 3.10+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="17-20 24-25" @@ -148,7 +148,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere === "Python 3.8+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="19-22 26-27" @@ -179,7 +179,7 @@ Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der * === "Python 3.10+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="29" @@ -188,7 +188,7 @@ Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der * === "Python 3.8+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="31" @@ -199,7 +199,7 @@ Beachten Sie, dass wir als Typ von `current_user` das Pydantic-Modell `User` dek Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen helfen. -!!! tip +!!! tip "Tipp" Sie erinnern sich vielleicht, dass Requestbodys ebenfalls mit Pydantic-Modellen deklariert werden. Weil Sie `Depends` verwenden, wird **FastAPI** hier aber nicht verwirrt. @@ -261,7 +261,7 @@ Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein === "Python 3.10+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="28-30" @@ -270,7 +270,7 @@ Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein === "Python 3.8+ nicht annotiert" - !!! tip + !!! tip "Tipp" Bevorzugen Sie die `Annotated`-Version, falls möglich. ```Python hl_lines="30-32" From 4e6e1fa3dda2a0f6f26b01530ed7ae984be8a988 Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Wed, 25 Oct 2023 06:28:14 +0200 Subject: [PATCH 4/7] "Das Token" -> "Der Token" Sources: https://www.korrekturen.de/genus/der-oder-das-token.shtml https://rechtschreibung.woxikon.de/artikel/der-oder-das-token --- docs/de/docs/tutorial/security/get-current-user.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md index b60e8a657e1ef..236f633ad22a8 100644 --- a/docs/de/docs/tutorial/security/get-current-user.md +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -1,6 +1,6 @@ # Aktuellen Nutzer abrufen -Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injection System basiert) der *Pfadoperation-Funktion* ein `token` vom Typ `str` überreicht: +Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injection System basiert) der *Pfadoperation-Funktion* einen `token` vom Typ `str` überreicht: === "Python 3.9+" @@ -77,7 +77,7 @@ Erinnern Sie sich, dass Abhängigkeiten Unterabhängigkeiten haben können? `get_current_user` wird seinerseits von `oauth2_scheme` abhängen, das wir zuvor erstellt haben. -So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere neue Abhängigkeit `get_current_user` von der Unterabhängigkeit `oauth2_scheme` ein `token` vom Typ `str`: +So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere neue Abhängigkeit `get_current_user` von der Unterabhängigkeit `oauth2_scheme` einen `token` vom Typ `str`: === "Python 3.10+" @@ -117,7 +117,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere ## Den Nutzer holen -`get_current_user` wird eine von uns erstellte (gefakte) Hilfsfunktion verwenden, welche ein Token vom Typ `str` entgegennimmt und unser Pydantic-`User`-Modell zurückgibt: +`get_current_user` wird eine von uns erstellte (gefakte) Hilfsfunktion verwenden, welche einen Token vom Typ `str` entgegennimmt und unser Pydantic-`User`-Modell zurückgibt: === "Python 3.10+" @@ -221,7 +221,7 @@ Möchten Sie eine `id` und eine `email` und keinen `username` in Ihrem Modell ha Möchten Sie nur ein `str` haben? Oder nur ein `dict`? Oder direkt eine Instanz eines Modells einer Datenbank-Klasse? Es funktioniert alles auf die gleiche Weise. -Sie haben eigentlich keine Nutzer, die sich bei Ihrer Anwendung anmelden, sondern Roboter, Bots oder andere Systeme, die nur über ein Zugriffstoken verfügen? Auch hier funktioniert alles gleich. +Sie haben eigentlich keine Nutzer, die sich bei Ihrer Anwendung anmelden, sondern Roboter, Bots oder andere Systeme, die nur über einen Zugriffstoken verfügen? Auch hier funktioniert alles gleich. Verwenden Sie einfach jede Art von Modell, jede Art von Klasse, jede Art von Datenbank, die Sie für Ihre Anwendung benötigen. **FastAPI** deckt das alles mit seinem Dependency Injection System ab. From 93e60d9736ae7fe7e32b67fc164b78c7210eed10 Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Wed, 25 Oct 2023 23:37:35 +0200 Subject: [PATCH 5/7] "Nutzer" -> "Benutzer" --- .../tutorial/security/get-current-user.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md index 236f633ad22a8..c8add43aeace5 100644 --- a/docs/de/docs/tutorial/security/get-current-user.md +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -1,4 +1,4 @@ -# Aktuellen Nutzer abrufen +# Aktuellen Benutzer abrufen Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injection System basiert) der *Pfadoperation-Funktion* einen `token` vom Typ `str` überreicht: @@ -25,11 +25,11 @@ Im vorherigen Kapitel hat das Sicherheitssystem (das auf dem Dependency Injectio Aber das ist immer noch nicht so nützlich. -Lassen wir es uns den aktuellen Nutzer überreichen. +Lassen wir es uns den aktuellen Benutzer überreichen. -## Ein Nutzer-Modell erstellen +## Ein Benutzer-Modell erstellen -Erstellen wir zunächst ein Pydantic-Nutzer-Modell. +Erstellen wir zunächst ein Pydantic-Benutzer-Modell. So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch überall sonst verwenden: @@ -115,7 +115,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere {!> ../../../docs_src/security/tutorial002.py!} ``` -## Den Nutzer holen +## Den Benutzer holen `get_current_user` wird eine von uns erstellte (gefakte) Hilfsfunktion verwenden, welche einen Token vom Typ `str` entgegennimmt und unser Pydantic-`User`-Modell zurückgibt: @@ -155,7 +155,7 @@ So wie wir es zuvor in der *Pfadoperation* direkt gemacht haben, erhält unsere {!> ../../../docs_src/security/tutorial002.py!} ``` -## Den aktuellen Nutzer einfügen +## Den aktuellen Benutzer einfügen Und jetzt können wir wiederum `Depends` mit unserem `get_current_user` in der *Pfadoperation* verwenden: @@ -211,7 +211,7 @@ Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen ## Andere Modelle -Sie können jetzt den aktuellen Nutzer direkt in den *Pfadoperation-Funktionen* abrufen und die Sicherheitsmechanismen auf **Dependency Injection** Ebene handhaben, mittels `Depends`. +Sie können jetzt den aktuellen Benutzer direkt in den *Pfadoperation-Funktionen* abrufen und die Sicherheitsmechanismen auf **Dependency Injection** Ebene handhaben, mittels `Depends`. Und Sie können alle Modelle und Daten für die Sicherheitsanforderungen verwenden (in diesem Fall ein Pydantic-Modell `User`). @@ -221,7 +221,7 @@ Möchten Sie eine `id` und eine `email` und keinen `username` in Ihrem Modell ha Möchten Sie nur ein `str` haben? Oder nur ein `dict`? Oder direkt eine Instanz eines Modells einer Datenbank-Klasse? Es funktioniert alles auf die gleiche Weise. -Sie haben eigentlich keine Nutzer, die sich bei Ihrer Anwendung anmelden, sondern Roboter, Bots oder andere Systeme, die nur über einen Zugriffstoken verfügen? Auch hier funktioniert alles gleich. +Sie haben eigentlich keine Benutzer, die sich bei Ihrer Anwendung anmelden, sondern Roboter, Bots oder andere Systeme, die nur über einen Zugriffstoken verfügen? Auch hier funktioniert alles gleich. Verwenden Sie einfach jede Art von Modell, jede Art von Klasse, jede Art von Datenbank, die Sie für Ihre Anwendung benötigen. **FastAPI** deckt das alles mit seinem Dependency Injection System ab. @@ -279,10 +279,10 @@ Und alle diese Tausenden von *Pfadoperationen* können nur drei Zeilen lang sein ## Zusammenfassung -Sie können jetzt den aktuellen Nutzer direkt in Ihrer *Pfadoperation-Funktion* abrufen. +Sie können jetzt den aktuellen Benutzer direkt in Ihrer *Pfadoperation-Funktion* abrufen. Wir haben bereits die Hälfte geschafft. -Wir müssen jetzt nur noch eine *Pfadoperation* hinzufügen, mittels der der Nutzer/Client tatsächlich seinen `username` und `password` senden kann. +Wir müssen jetzt nur noch eine *Pfadoperation* hinzufügen, mittels der der Benutzer/Client tatsächlich seinen `username` und `password` senden kann. Das kommt als nächstes. From 93e34cd17428d9928221b23eeb3676c1f4a2d451 Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Sun, 29 Oct 2023 04:55:18 +0100 Subject: [PATCH 6/7] Use typographic quotes --- docs/de/docs/tutorial/security/get-current-user.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md index c8add43aeace5..b259e3e2693c7 100644 --- a/docs/de/docs/tutorial/security/get-current-user.md +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -205,7 +205,7 @@ Das wird uns innerhalb der Funktion bei Codevervollständigung und Typprüfungen Weil Sie `Depends` verwenden, wird **FastAPI** hier aber nicht verwirrt. !!! check - Die Art und Weise, wie dieses System von Abhängigkeiten konzipiert ist, ermöglicht es uns, verschiedene Abhängigkeiten (verschiedene "Dependables") zu haben, die alle ein `User`-Modell zurückgeben. + Die Art und Weise, wie dieses System von Abhängigkeiten konzipiert ist, ermöglicht es uns, verschiedene Abhängigkeiten (verschiedene „Dependables“) zu haben, die alle ein `User`-Modell zurückgeben. Wir sind nicht darauf beschränkt, nur eine Abhängigkeit zu haben, die diesen Typ von Daten zurückgeben kann. From e0585badcab33b6f2bd4767c0e22c864e22209d0 Mon Sep 17 00:00:00 2001 From: Nils Lindemann Date: Fri, 8 Dec 2023 07:56:37 +0100 Subject: [PATCH 7/7] "-Modell" -> "modell" --- docs/de/docs/tutorial/security/get-current-user.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/de/docs/tutorial/security/get-current-user.md b/docs/de/docs/tutorial/security/get-current-user.md index b259e3e2693c7..09b55a20e8d08 100644 --- a/docs/de/docs/tutorial/security/get-current-user.md +++ b/docs/de/docs/tutorial/security/get-current-user.md @@ -27,9 +27,9 @@ Aber das ist immer noch nicht so nützlich. Lassen wir es uns den aktuellen Benutzer überreichen. -## Ein Benutzer-Modell erstellen +## Ein Benutzermodell erstellen -Erstellen wir zunächst ein Pydantic-Benutzer-Modell. +Erstellen wir zunächst ein Pydantic-Benutzermodell. So wie wir Pydantic zum Deklarieren von Bodys verwenden, können wir es auch überall sonst verwenden: