|
|
@ -2,9 +2,7 @@ |
|
|
|
|
|
|
|
Najprostszy plik FastAPI może wyglądać tak: |
|
|
|
|
|
|
|
```Python |
|
|
|
{!../../docs_src/first_steps/tutorial001.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial001.py *} |
|
|
|
|
|
|
|
Skopiuj to do pliku `main.py`. |
|
|
|
|
|
|
@ -133,9 +131,7 @@ Możesz go również użyć do automatycznego generowania kodu dla klientów, kt |
|
|
|
|
|
|
|
### Krok 1: zaimportuj `FastAPI` |
|
|
|
|
|
|
|
```Python hl_lines="1" |
|
|
|
{!../../docs_src/first_steps/tutorial001.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial001.py hl[1] *} |
|
|
|
|
|
|
|
`FastAPI` jest klasą, która zapewnia wszystkie funkcjonalności Twojego API. |
|
|
|
|
|
|
@ -149,9 +145,7 @@ Oznacza to, że możesz korzystać ze wszystkich funkcjonalności <a href="https |
|
|
|
|
|
|
|
### Krok 2: utwórz instancję `FastAPI` |
|
|
|
|
|
|
|
```Python hl_lines="3" |
|
|
|
{!../../docs_src/first_steps/tutorial001.py!} |
|
|
|
``` |
|
|
|
{*../../docs_src/first_steps/tutorial001.py hl[3] *} |
|
|
|
|
|
|
|
Zmienna `app` będzie tutaj "instancją" klasy `FastAPI`. |
|
|
|
|
|
|
@ -171,9 +165,7 @@ $ uvicorn main:app --reload |
|
|
|
|
|
|
|
Jeśli stworzysz swoją aplikację, np.: |
|
|
|
|
|
|
|
```Python hl_lines="3" |
|
|
|
{!../../docs_src/first_steps/tutorial002.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial002.py hl[3] *} |
|
|
|
|
|
|
|
I umieścisz to w pliku `main.py`, to będziesz mógł tak wywołać `uvicorn`: |
|
|
|
|
|
|
@ -250,9 +242,7 @@ Będziemy je również nazywali "**operacjami**". |
|
|
|
|
|
|
|
#### Zdefiniuj *dekorator operacji na ścieżce* |
|
|
|
|
|
|
|
```Python hl_lines="6" |
|
|
|
{!../../docs_src/first_steps/tutorial001.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial001.py hl[6] *} |
|
|
|
|
|
|
|
`@app.get("/")` mówi **FastAPI** że funkcja poniżej odpowiada za obsługę żądań, które trafiają do: |
|
|
|
|
|
|
@ -306,9 +296,7 @@ To jest nasza "**funkcja obsługująca ścieżkę**": |
|
|
|
* **operacja**: to `get`. |
|
|
|
* **funkcja**: to funkcja poniżej "dekoratora" (poniżej `@app.get("/")`). |
|
|
|
|
|
|
|
```Python hl_lines="7" |
|
|
|
{!../../docs_src/first_steps/tutorial001.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial001.py hl[7] *} |
|
|
|
|
|
|
|
Jest to funkcja Python. |
|
|
|
|
|
|
@ -320,9 +308,7 @@ W tym przypadku jest to funkcja "asynchroniczna". |
|
|
|
|
|
|
|
Możesz również zdefiniować to jako normalną funkcję zamiast `async def`: |
|
|
|
|
|
|
|
```Python hl_lines="7" |
|
|
|
{!../../docs_src/first_steps/tutorial003.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial003.py hl[7] *} |
|
|
|
|
|
|
|
/// note |
|
|
|
|
|
|
@ -332,9 +318,7 @@ Jeśli nie znasz różnicy, sprawdź [Async: *"In a hurry?"*](../async.md#in-a-h |
|
|
|
|
|
|
|
### Krok 5: zwróć zawartość |
|
|
|
|
|
|
|
```Python hl_lines="8" |
|
|
|
{!../../docs_src/first_steps/tutorial001.py!} |
|
|
|
``` |
|
|
|
{* ../../docs_src/first_steps/tutorial001.py hl[8] *} |
|
|
|
|
|
|
|
Możesz zwrócić `dict`, `list`, pojedynczą wartość jako `str`, `int`, itp. |
|
|
|
|
|
|
|