Szybki jak FastAPI. Projektowanie aplikacji WWW w Pythonie - ebook
Szybki jak FastAPI. Projektowanie aplikacji WWW w Pythonie - ebook
Internet rozwija się w niesamowitym tempie. Dawniej sieć WWW była prostsza ... projektanci łączyli kod PHP, HTML i zapytania do MySQL w jednym pliku. Z czasem urosła do miliardów stron, co radykalnie zmieniło jej kształt. Zmieniły się też narzędzia i sposób pracy. Dziś idealnym wyborem dewelopera aplikacji WWW jest FastAPI, nowoczesne narzędzie, które wykorzystuje nowe cechy Pythona i z powodzeniem rywalizuje z podobnymi frameworkami języka Golang.
Książka zawiera wszechstronne omówienie FastAPI i otaczającego ten framework ekosystemu!
William Jamir Silva, starszy inżynier oprogramowania, Adjust GmbH
Dzięki znajomości Pythona i temu praktycznemu poradnikowi zaczniesz z sukcesem używać FastAPI i docenisz, jak szybko można budować aplikacje WWW. Zrozumiesz zasady pracy z tym frameworkiem i będziesz je stosować przy tworzeniu własnych projektów. Przyswoisz różne nieznane powszechnie techniki i dowiesz się, jakie praktyki najlepiej sprawdzają się w codziennej pracy. Poznasz takie zagadnienia jak formularze, dostęp do baz danych, grafika i mapy. Nauczysz się również korzystać z interfejsów RESTful API, prowadzić walidację danych, autoryzację i zapewniać wysoką wydajność swojego kodu.
W książce:
- budowa aplikacji WWW z użyciem FastAPI
- różnice pomiędzy FastAPI, Starlette i Pydantic
- stosowanie funkcji asynchronicznych, sprawdzanie typów danych i walidacja
- nowe cechy Pythona 3.8+, w tym adnotacje typów
- tworzenie kodu synchronicznego i asynchronicznego
- korzystanie z zewnętrznych API i usług
FastAPI przedstawione w prosty sposób! Książka wyposaża w praktyczną wiedzę i umożliwia szybki start.
Ganesh Harke, starszy inżynier oprogramowania, Citibank
Spis treści
Wstęp
Część I. Co nowego?
- 1. Współczesna sieć WWW
- Wprowadzenie
- Usługi i API
- Rodzaje API
- HTTP
- REST(ful)
- Formaty danych JSON i API
- JSON:API
- GraphQL
- Współbieżność
- Warstwy
- Dane
- Podsumowanie
- 2. Współczesny Python
- Wprowadzenie
- Narzędzia
- Zaczynamy
- Python
- Zarządzanie pakietami
- Środowiska wirtualne
- Poetry
- Formatowanie źródeł
- Testowanie
- Kontrola wersji i ciągła integracja
- Narzędzia webowe
- API i usługi
- Zmienne są nazwami
- Podpowiedzi typów
- Struktury danych
- Frameworki webowe
- Django
- Flask
- FastAPI
- Podsumowanie
Część II. Przegląd FastAPI
- 3. Przegląd FastAPI
- Wprowadzenie
- Czym jest FastAPI?
- Aplikacja FastAPI
- Żądania HTTP
- Ścieżka URL
- Parametry zapytania
- Ciało
- Nagłówek HTTP
- Różne rodzaje danych w żądaniu
- Która metoda jest najlepsza?
- Odpowiedzi HTTP
- Kod statusu
- Nagłówki
- Rodzaje odpowiedzi
- Konwersja typów
- Modele i response_model
- Automatyczna dokumentacja
- Dane złożone
- Podsumowanie
- 4. await, współbieżność i wycieczka po Starlette
- Wprowadzenie
- Starlette
- Rodzaje współbieżności
- Przetwarzanie rozproszone i równoległe
- Procesy systemu operacyjnego
- Wątki systemu operacyjnego
- Zielone wątki
- Wywołania zwrotne
- Generatory Pythona
- async, await i asyncio w Pythonie
- FastAPI i async
- Bezpośrednie użycie Starlette
- Interludium: sprzątanie domu zagadek
- Podsumowanie
- 5. Pydantic, podpowiedzi typów i wycieczka po modelach
- Wprowadzenie
- Podpowiedzi typów
- Grupowanie danych
- Alternatywy
- Prosty przykład
- Walidacja typów
- Walidacja wartości
- Podsumowanie
- 6. Zależności
- Wprowadzenie
- Czym jest zależność?
- Problemy z zależnościami
- Wstrzykiwanie zależności
- Zależności FastAPI
- Pisanie zależności
- Zakres zależności
- Pojedyncza ścieżka
- Wiele ścieżek
- Zakres globalny
- Podsumowanie
- 7. Porównanie frameworków
- Wprowadzenie
- Flask
- Ścieżka
- Parametry zapytania
- Ciało
- Nagłówek
- Django
- Inne cechy frameworków webowych
- Bazy danych
- Zalecenia
- Inne frameworki Pythona
- Podsumowanie
Część III. Tworzymy serwis WWW
- 8. Warstwa sieci
- Wprowadzenie
- Z góry na dół, z dołu do góry, od środka na zewnątrz?
- Projekt RESTful API
- Struktura plików i katalogów w serwisie
- Pierwszy kod źródłowy
- Żądania
- Wiele obiektów trasowania
- Budowanie warstwy sieci
- Definiowanie modeli danych
- Dane wpisane na sztywno
- Tworzenie funkcji wspólnych dla całego serwisu
- Tworzenie sztucznych danych
- Test
- Użycie zautomatyzowanych formularzy testowych FastAPI
- Komunikacja z warstwami usług i danych
- Podział na strony i sortowanie
- Podsumowanie
- 9. Warstwa usług
- Wstęp
- Definiowanie usług
- Układ
- Ochrona
- Funkcje
- Test
- Inne rzeczy w warstwie usług
- Logowanie
- Statystyki, monitorowanie, obserwowalność
- Śledzenie
- Inne
- Podsumowanie
- 10. Warstwa danych
- Wstęp
- DB-API
- SQLite
- Układ
- Uruchomienie
- Test
- Testy pełne
- Testy jednostkowe
- Podsumowanie
- 11. Uwierzytelnianie i autoryzacja
- Wstęp
- Czy potrzebujesz uwierzytelniania?
- Metody uwierzytelniania
- Uwierzytelnianie ogólne: współdzielony sekret
- Proste uwierzytelnianie indywidualne
- Uwierzytelnianie zaawansowane
- OAuth2
- Model użytkownika
- Użytkownicy w warstwie danych
- Użytkownicy w warstwie sztucznych danych
- Użytkownicy w warstwie usług
- Użytkownicy w warstwie sieci
- Test
- Główna warstwa serwisu
- Kroki autoryzacji
- JWT
- Autoryzacja przez partnerów zewnętrznych - OIDC
- Autoryzacja
- Warstwa pośrednia
- CORS
- Pakiety innych dostawców
- Podsumowanie
- 12. Testowanie
- Wstęp
- Testowanie API sieciowego
- Gdzie testować?
- Co testować?
- Pytest
- Układ
- Automatyczne testy jednostkowe
- Symulowanie
- Dublerzy i sztuczne dane
- Sieć
- Usługi
- Dane
- Automatyczne testy integracyjne
- Wzorzec repozytorium
- Pełne testy automatyczne
- Testy bezpieczeństwa
- Testowanie wydajności
- Podsumowanie
- 13. Produkcja
- Wstęp
- Publikacja
- Wiele wątków roboczych
- HTTPS
- Docker
- Usługi chmurowe
- Kubernetes
- Wydajność
- Asynchroniczność
- Pamięć podręczna
- Bazy danych, pliki i pamięć
- Kolejki
- Sam Python
- Rozwiązywanie problemów
- Rodzaje problemów
- Logowanie
- Statystyki
- Podsumowanie
Część IV. Galeria
- 14. Bazy danych, analiza danych i odrobinę sztucznej inteligencji
- Wstęp
- Alternatywne magazyny danych
- Relacyjne bazy danych i SQL
- SQLAlchemy
- SQLModel
- SQLite
- PostgreSQL
- EdgeDB
- Nierelacyjne (NoSQL) bazy danych
- Redis
- MongoDB
- Cassandra
- Elasticsearch
- Cechy NoSQL w bazach danych SQL
- Testy wydajnościowe baz danych
- Analiza danych i sztuczna inteligencja
- Podsumowanie
- 15. Pliki
- Wstęp
- Obsługa części
- Wysyłanie plików
- File()
- UploadFile
- Pobieranie plików
- FileResponse
- StreamingResponse
- Serwowanie plików statycznych
- Podsumowanie
- 16. Formularze i szablony
- Wstęp
- Formularze
- Szablony
- Podsumowanie
- 17. Eksploracja i wizualizacja danych
- Wstęp
- Python i dane
- Wyjście w formacie PVS
- CSV
- python-tabulate
- pandas
- SQLite jako wejście i sieć jako wyjście
- Pakiety do wykresów i grafik
- Pierwszy przykład z testowym wykresem
- Drugi przykład z histogramem
- Pakiety map
- Przykład mapy
- Podsumowanie
- 18. Gry
- Wstęp
- Pakiety Pythona dla gier
- Rozdzielenie logiki gry
- Projekt gry
- Warstwa sieci - część I: inicjalizacja gry
- Warstwa sieci - część II: kroki gry
- Warstwa usług - część I: inicjalizacja
- Warstwa usług - część II: wyliczanie wyniku
- Test
- Warstwa danych: inicjalizacja
- Zagrajmy w Cryptonamicon
- Podsumowanie
A. Dalsza lektura
B. Stworzenia i ludzie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-289-1297-7 |
Rozmiar pliku: | 5,4 MB |