Skip to content

Commit

Permalink
馃寪 Add Polish translation for docs/pl/docs/features.md (#5348)
Browse files Browse the repository at this point in the history
Co-authored-by: Sebasti谩n Ram铆rez <tiangolo@gmail.com>
  • Loading branch information
mbroton and tiangolo committed Jun 22, 2023
1 parent 7505f24 commit a92e9c9
Show file tree
Hide file tree
Showing 2 changed files with 201 additions and 0 deletions.
200 changes: 200 additions & 0 deletions docs/pl/docs/features.md
@@ -0,0 +1,200 @@
# Cechy

## Cechy FastAPI

**FastAPI** zapewnia Ci nast臋puj膮ce korzy艣ci:

### Oparcie o standardy open

* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a> do tworzenia API, w tym deklaracji <abbr title="znane r贸wnie偶 jako: paths, endpoints, routes">艣cie偶ek</abbr> <abbr title="znane r贸wnie偶 jako metody HTTP, takie jak POST, GET, PUT, DELETE">operacji</abbr>, parametr贸w, <abbr title="po angielsku: body requests">cia艂 zapyta艅</abbr>, bezpiecze艅stwa, itp.
* Automatyczna dokumentacja modelu danych za pomoc膮 <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a> (poniewa偶 OpenAPI bazuje na JSON Schema).
* Zaprojektowane z my艣l膮 o zgodno艣ci z powy偶szymi standardami zamiast dodawania ich obs艂ugi po fakcie.
* Mo偶liwo艣膰 automatycznego **generowania kodu klienta** w wielu j臋zykach.

### Automatyczna dokumentacja

Interaktywna dokumentacja i webowe interfejsy do eksploracji API. Z racji tego, 偶e framework bazuje na OpenAPI, istnieje wiele opcji, z czego 2 s膮 domy艣lnie do艂膮czone.

* <a href="https://github.com/swagger-api/swagger-ui" class="external-link" target="_blank"><strong>Swagger UI</strong></a>, z interaktywnym interfejsem - odpytuj i testuj swoje API bezpo艣rednio z przegl膮darki.

![Swagger UI interakcja](https://fastapi.tiangolo.com/img/index/index-03-swagger-02.png)

* Alternatywna dokumentacja API z <a href="https://github.com/Rebilly/ReDoc" class="external-link" target="_blank"><strong>ReDoc</strong></a>.

![ReDoc](https://fastapi.tiangolo.com/img/index/index-06-redoc-02.png)

### Nowoczesny Python

Wszystko opiera si臋 na standardowych deklaracjach typu **Python 3.6** (dzi臋ki Pydantic). Brak nowej sk艂adni do uczenia. Po prostu standardowy, wsp贸艂czesny Python.

Je艣li potrzebujesz szybkiego przypomnienia jak u偶ywa膰 deklaracji typ贸w w Pythonie (nawet je艣li nie u偶ywasz FastAPI), sprawd藕 kr贸tki samouczek: [Python Types](python-types.md){.internal-link target=_blank}.

Wystarczy, 偶e napiszesz standardowe deklaracje typ贸w Pythona:

```Python
from datetime import date

from pydantic import BaseModel

# Zadeklaruj parametr jako str
# i uzyskaj wsparcie edytora wewn膮trz funkcji
def main(user_id: str):
return user_id


# Model Pydantic
class User(BaseModel):
id: int
name: str
joined: date
```

A one b臋d膮 mog艂y zosta膰 p贸藕niej u偶yte w nast臋puj膮cy spos贸b:

```Python
my_user: User = User(id=3, name="John Doe", joined="2018-07-19")

second_user_data = {
"id": 4,
"name": "Mary",
"joined": "2018-11-30",
}

my_second_user: User = User(**second_user_data)
```

!!! info
`**second_user_data` oznacza:

Przeka偶 klucze i warto艣ci s艂ownika `second_user_data` bezpo艣rednio jako argumenty klucz-warto艣膰, co jest r贸wnoznaczne z: `User(id=4, name="Mary", joined="2018-11-30")`

### Wsparcie edytora

Ca艂y framework zosta艂 zaprojektowany tak, aby by艂 艂atwy i intuicyjny w u偶yciu. Wszystkie pomys艂y zosta艂y przetestowane na wielu edytorach jeszcze przed rozpocz臋ciem procesu tworzenia, aby zapewni膰 najlepsze wra偶enia programistyczne.

Ostatnia ankieta <abbr title="coroczna ankieta przeprowadza w 艣rodowisku programist贸w j臋zyka Python">Python developer survey</abbr> jasno wskazuje, 偶e <a href="https://www.jetbrains.com/research/python-developers-survey-2017/#tools-and-features" class="external-link" target="_blank">najcz臋艣ciej u偶ywan膮 funkcjonalno艣ci膮 jest autouzupe艂nianie w edytorze</a>.

Ca艂a struktura frameworku **FastAPI** jest na tym oparta. Autouzupe艂nianie dzia艂a wsz臋dzie.

Rzadko b臋dziesz musia艂 wraca膰 do dokumentacji.

Oto, jak tw贸j edytor mo偶e Ci pom贸c:

* <a href="https://code.visualstudio.com/" class="external-link" target="_blank">Visual Studio Code</a>:

![wsparcie edytora](https://fastapi.tiangolo.com/img/vscode-completion.png)

* <a href="https://www.jetbrains.com/pycharm/" class="external-link" target="_blank">PyCharm</a>:

![wsparcie edytora](https://fastapi.tiangolo.com/img/pycharm-completion.png)

Otrzymasz uzupe艂nienie nawet w miejscach, w kt贸rych normalnie uzupe艂nienia nie ma. Na przyk艂ad klucz "price" w tre艣ci JSON (kt贸ry m贸g艂 by膰 zagnie偶d偶ony), kt贸ry pochodzi z zapytania.

Koniec z wpisywaniem b艂臋dnych nazw kluczy, przechodzeniem tam i z powrotem w dokumentacji lub przewijaniem w g贸r臋 i w d贸艂, aby sprawdzi膰, czy w ko艅cu u偶y艂e艣 nazwy `username` czy `user_name`.

### Zwi臋z艂o艣膰

Wszystko posiada sensowne **domy艣lne warto艣ci**. Wsz臋dzie znajdziesz opcjonalne konfiguracje. Wszystkie parametry mo偶esz dostroi膰, aby zrobi膰 to co potrzebujesz do zdefiniowania API.

Ale domy艣lnie wszystko **"po prostu dzia艂a"**.

### Walidacja

* Walidacja wi臋kszo艣ci (lub wszystkich?) **typ贸w danych** Pythona, w tym:
* Obiekt贸w JSON (`dict`).
* Tablic JSON (`list`) ze zdefiniowanym typem element贸w.
* P贸l tekstowych (`str`) z okre艣leniem minimalnej i maksymalnej d艂ugo艣ci.
* Liczb (`int`, `float`) z warto艣ciami minimalnymi, maksymalnymi, itp.

* Walidacja bardziej egzotycznych typ贸w danych, takich jak:
* URL.
* Email.
* UUID.
* ...i inne.

Ca艂a walidacja jest obs艂ugiwana przez ugruntowan膮 i solidn膮 bibliotek臋 **Pydantic**.

### Bezpiecze艅stwo i uwierzytelnianie

Bezpiecze艅stwo i uwierzytelnianie jest zintegrowane. Bez 偶adnych kompromis贸w z bazami czy modelami danych.

Wszystkie schematy bezpiecze艅stwa zdefiniowane w OpenAPI, w tym:

* Podstawowy protok贸艂 HTTP.
* **OAuth2** (r贸wnie偶 z **tokenami JWT**). Sprawd藕 samouczek [OAuth2 with JWT](tutorial/security/oauth2-jwt.md){.internal-link target=_blank}.
* Klucze API w:
* Nag艂贸wkach.
* Parametrach zapyta艅.
* Ciasteczkach, itp.

Plus wszystkie funkcje bezpiecze艅stwa Starlette (w艂膮czaj膮c w to **<abbr title="po angielsku: session cookies">ciasteczka sesyjne</abbr>**).

Wszystko zbudowane jako narz臋dzia i komponenty wielokrotnego u偶ytku, kt贸re mo偶na 艂atwo zintegrowa膰 z systemami, magazynami oraz bazami danych - relacyjnymi, NoSQL, itp.

### Wstrzykiwanie Zale偶no艣ci

FastAPI zawiera niezwykle 艂atwy w u偶yciu, ale niezwykle pot臋偶ny system <abbr title='Po angielsku: Dependency Injection. Znane r贸wnie偶 jako "components", "resources", "services", "providers"'><strong>Wstrzykiwania Zale偶no艣ci</strong></abbr>.

* Nawet zale偶no艣ci mog膮 mie膰 zale偶no艣ci, tworz膮c hierarchi臋 lub **"graf" zale偶no艣ci**.
* Wszystko jest **obs艂ugiwane automatycznie** przez framework.
* Wszystkie zale偶no艣ci mog膮 wymaga膰 danych w 偶膮daniach oraz rozszerza膰 ograniczenia i automatyczn膮 dokumentacj臋 **<abbr title="po angielsku: path operations">operacji na 艣cie偶ce</abbr>**.
* **Automatyczna walidacja** parametr贸w *operacji na 艣cie偶ce* zdefiniowanych w zale偶no艣ciach.
* Obs艂uga z艂o偶onych system贸w uwierzytelniania u偶ytkownik贸w, **po艂膮cze艅 z bazami danych**, itp.
* Bazy danych, front end, itp. **bez kompromis贸w**, ale wci膮偶 艂atwe do integracji.

### Nieograniczone "wtyczki"

Lub ujmuj膮c to inaczej - brak potrzeby wtyczek. Importuj i u偶ywaj kod, kt贸ry potrzebujesz.

Ka偶da integracja zosta艂a zaprojektowana tak, aby by艂a tak prosta w u偶yciu (z zale偶no艣ciami), 偶e mo偶esz utworzy膰 "wtyczk臋" dla swojej aplikacji w 2 liniach kodu, u偶ywaj膮c tej samej struktury i sk艂adni, kt贸re s膮 u偶ywane w *operacjach na 艣cie偶ce*.

### Testy

* 100% <abbr title="Ilo艣膰 kodu, kt贸ry jest automatycznie testowany">pokrycia kodu testami</abbr>.
* 100% <abbr title="Deklaracje typ贸w Python - dzi臋ki nim tw贸j edytor i zewn臋trzne narz臋dzia mog膮 zapewni膰 Ci lepsze wsparcie ">adnotacji typ贸w</abbr>.
* U偶ywany w aplikacjach produkcyjnych.

## Cechy Starlette

**FastAPI** jest w pe艂ni kompatybilny z (oraz bazuje na) <a href="https://www.starlette.io/" class="external-link" target="_blank"><strong>Starlette</strong></a>. Tak wi臋c ka偶dy dodatkowy kod Starlette, kt贸ry posiadasz, r贸wnie偶 b臋dzie dzia艂a艂.

`FastAPI` jest w rzeczywisto艣ci podklas膮 `Starlette`, wi臋c je艣li ju偶 znasz lub u偶ywasz Starlette, wi臋kszo艣膰 funkcji b臋dzie dzia艂a膰 w ten sam spos贸b.

Dzi臋ki **FastAPI** otrzymujesz wszystkie funkcje **Starlette** (poniewa偶 FastAPI to po prostu Starlette na sterydach):

* Bardzo imponuj膮ca wydajno艣膰. Jest to <a href="https://github.com/encode/starlette#performance" class="external-link" target="_blank">jeden z najszybszych dost臋pnych framework贸w Pythona, na r贸wni z **NodeJS** i **Go**</a>.
* Wsparcie dla **WebSocket**.
* <abbr title='Zadania wykonywane w tle, bez zatrzymywania 偶膮da艅, w tym samym procesie. Po angielsku: In-process background tasks'>Zadania w tle</abbr>.
* Eventy startup i shutdown.
* Klient testowy zbudowany na bazie biblioteki `requests`.
* **CORS**, GZip, pliki statyczne, streamy.
* Obs艂uga **sesji i ciasteczek**.
* 100% pokrycie testami.
* 100% adnotacji typ贸w.

## Cechy Pydantic

**FastAPI** jest w pe艂ni kompatybilny z (oraz bazuje na) <a href="https://pydantic-docs.helpmanual.io" class="external-link" target="_blank"><strong>Pydantic</strong></a>. Tak wi臋c ka偶dy dodatkowy kod Pydantic, kt贸ry posiadasz, r贸wnie偶 b臋dzie dzia艂a艂.

Wliczaj膮c w to zewn臋trzne biblioteki, r贸wnie偶 oparte o Pydantic, takie jak <abbr title="Mapowanie obiektowo-relacyjne. Po angielsku: Object-Relational Mapper">ORM</abbr>, <abbr title="Object-Document Mapper">ODM</abbr> dla baz danych.

Oznacza to, 偶e w wielu przypadkach mo偶esz przekaza膰 ten sam obiekt, kt贸ry otrzymasz z 偶膮dania **bezpo艣rednio do bazy danych**, poniewa偶 wszystko jest walidowane automatycznie.

Dzia艂a to r贸wnie偶 w drug膮 stron臋, w wielu przypadkach mo偶esz po prostu przekaza膰 obiekt otrzymany z bazy danych **bezpo艣rednio do klienta**.

Dzi臋ki **FastAPI** otrzymujesz wszystkie funkcje **Pydantic** (poniewa偶 FastAPI bazuje na Pydantic do obs艂ugi wszystkich danych):

* **Bez prania m贸zgu**:
* Brak nowego mikroj臋zyka do definiowania schematu, kt贸rego trzeba si臋 nauczy膰.
* Je艣li znasz adnotacje typ贸w Pythona to wiesz jak u偶ywa膰 Pydantic.
* Dobrze wsp贸艂pracuje z Twoim **<abbr title='Skr贸t od "Integrated Development Environment", podobne do edytora kodu'>IDE</abbr>/<abbr title="Program, kt贸ry sprawdza Tw贸j kod pod k膮tem b艂臋d贸w">linterem</abbr>/m贸zgiem**:
* Poniewa偶 struktury danych Pydantic to po prostu instancje klas, kt贸re definiujesz; autouzupe艂nianie, linting, mypy i twoja intuicja powinny dzia艂a膰 poprawnie z Twoimi zwalidowanymi danymi.
* **Szybko艣膰**:
* w <a href="https://pydantic-docs.helpmanual.io/benchmarks/" class="external-link" target="_blank">benchmarkach</a> Pydantic jest szybszy ni偶 wszystkie inne testowane biblioteki.
* Walidacja **z艂o偶onych struktur**:
* Wykorzystanie hierarchicznych modeli Pydantic, Pythonowego modu艂u `typing` zawieraj膮cego `List`, `Dict`, itp.
* Walidatory umo偶liwiaj膮 jasne i 艂atwe definiowanie, sprawdzanie z艂o偶onych struktur danych oraz dokumentowanie ich jako JSON Schema.
* Mo偶esz mie膰 g艂臋boko **zagnie偶d偶one obiekty JSON** i wszystkie je podda膰 walidacji i adnotowa膰.
* **Rozszerzalno艣膰**:
* Pydantic umo偶liwia zdefiniowanie niestandardowych typ贸w danych lub rozszerzenie walidacji o metody na modelu, na kt贸rych u偶yty jest dekorator walidatora.
* 100% pokrycie testami.
1 change: 1 addition & 0 deletions docs/pl/mkdocs.yml
Expand Up @@ -63,6 +63,7 @@ nav:
- tr: /tr/
- uk: /uk/
- zh: /zh/
- features.md
- Samouczek:
- tutorial/index.md
- tutorial/first-steps.md
Expand Down

0 comments on commit a92e9c9

Please sign in to comment.