Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌐 Add German translation for docs/de/docs/how-to/extending-openapi.md #10794

Merged
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
87 changes: 87 additions & 0 deletions docs/de/docs/how-to/extending-openapi.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# OpenAPI erweitern

In einigen FĂ€llen mĂŒssen Sie möglicherweise das generierte OpenAPI-Schema Ă€ndern.

In diesem Abschnitt erfahren Sie, wie.

## Der normale Vorgang

Der normale (Standard-)Prozess ist wie folgt.

Eine `FastAPI`-Anwendung (-Instanz) verfĂŒgt ĂŒber eine `.openapi()`-Methode, von der erwartet wird, dass sie das OpenAPI-Schema zurĂŒckgibt.

Als Teil der Erstellung des Anwendungsobjekts wird eine *Pfadoperation* fĂŒr `/openapi.json` (oder was auch immer der Wert von `openapi_url` ist) registriert.
nilslindemann marked this conversation as resolved.
Show resolved Hide resolved

Diese gibt lediglich eine JSON-Response zurĂŒck, welche das Ergebnis der Methode `.openapi()` der Anwendung ist.
nilslindemann marked this conversation as resolved.
Show resolved Hide resolved

StandardmĂ€ĂŸig ĂŒberprĂŒft die Methode `.openapi()` die Eigenschaft `.openapi_schema`, um zu sehen, ob diese Inhalt enthĂ€lt, und gibt diesen zurĂŒck.
nilslindemann marked this conversation as resolved.
Show resolved Hide resolved

Ist das nicht der Fall, wird er mithilfe der Hilfsfunktion unter `fastapi.openapi.utils.get_openapi` generiert.
nilslindemann marked this conversation as resolved.
Show resolved Hide resolved

Und diese Funktion `get_openapi()` erhÀlt als Parameter:

* `title`: Der OpenAPI-Titel, der in der Dokumentation angezeigt wird.
* `version`: Die Version Ihrer API, z. B. `2.5.0`.
* `openapi_version`: Die Version der verwendeten OpenAPI-Spezifikation. StandardmĂ€ĂŸig die neueste Version: `3.1.0`.
* `summary`: Eine kurze Zusammenfassung der API.
* `description`: Die Beschreibung Ihrer API. Dies kann Markdown enthalten und wird in der Dokumentation angezeigt.
* `routes`: Eine Liste von Routen, dies sind alle registrierten *Pfadoperationen*. Sie stammen von `app.routes`.

!!! info
Der Parameter `summary` ist in OpenAPI 3.1.0 und höher verfĂŒgbar und wird von FastAPI 0.99.0 und höher unterstĂŒtzt.

## Überschreiben der Standardeinstellungen

Mithilfe der oben genannten Informationen können Sie dieselbe Hilfsfunktion verwenden, um das OpenAPI-Schema zu generieren und jeden benötigten Teil zu ĂŒberschreiben.

FĂŒgen wir beispielsweise <a href="https://github.com/Rebilly/ReDoc/blob/master/docs/redoc-vendor-extensions.md#x-logo" class="external-link" target="_blank">ReDocs OpenAPI-Erweiterung</a> zum Einbinden eines benutzerdefinierten Logos hinzu..
nilslindemann marked this conversation as resolved.
Show resolved Hide resolved

### Normales **FastAPI**

Schreiben Sie zunÀchst wie gewohnt Ihre ganze **FastAPI**-Anwendung:

```Python hl_lines="1 4 7-9"
{!../../../docs_src/extending_openapi/tutorial001.py!}
```

### Das OpenAPI-Schema generieren

Verwenden Sie dann dieselbe Hilfsfunktion, um das OpenAPI-Schema innerhalb einer `custom_openapi()`-Funktion zu generieren:

```Python hl_lines="2 15-21"
{!../../../docs_src/extending_openapi/tutorial001.py!}
```

### Das OpenAPI-Schema Àndern

Jetzt können Sie die ReDoc-Erweiterung hinzufĂŒgen und dem `info`-„Objekt“ im OpenAPI-Schema ein benutzerdefiniertes `x-logo` hinzufĂŒgen:

```Python hl_lines="22-24"
{!../../../docs_src/extending_openapi/tutorial001.py!}
```

### Zwischenspeichern des OpenAPI-Schemas

Sie können die Eigenschaft `.openapi_schema` als „Cache“ verwenden, um Ihr generiertes Schema zu speichern.

Auf diese Weise muss Ihre Anwendung das Schema nicht jedes Mal generieren, wenn ein Benutzer Ihre API-Dokumentation öffnet.

Es wird nur einmal generiert und dann wird dasselbe zwischengespeicherte Schema fĂŒr die nĂ€chsten Requests verwendet.

```Python hl_lines="13-14 25-26"
{!../../../docs_src/extending_openapi/tutorial001.py!}
```

### Die Methode ĂŒberschreiben

Jetzt können Sie die Methode `.openapi()` durch Ihre neue Funktion ersetzen.

```Python hl_lines="29"
{!../../../docs_src/extending_openapi/tutorial001.py!}
```

### Es testen
nilslindemann marked this conversation as resolved.
Show resolved Hide resolved

Sobald Sie auf <a href="http://127.0.0.1:8000/redoc" class="external-link" target="_blank">http://127.0.0.1:8000/redoc</a> gehen, werden Sie sehen, dass Ihr benutzerdefiniertes Logo verwendet wird (in diesem Beispiel das Logo von **FastAPI**):

<img src="/img/tutorial/extending-openapi/image01.png">