E-book details

Szybki jak FastAPI. Projektowanie aplikacji WWW w Pythonie

Szybki jak FastAPI. Projektowanie aplikacji WWW w Pythonie

Bill Lubanovic

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

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

  • Title: Szybki jak FastAPI. Projektowanie aplikacji WWW w Pythonie
  • Author: Bill Lubanovic
  • Original title: FastAPI: Modern Python Web Development
  • Translation: Janusz Grabis
  • ISBN: 978-83-289-1297-7, 9788328912977
  • Date of issue: 2024-08-06
  • Format: Ebook
  • Item ID: szyfas
  • Publisher: Helion
  • Age category: 14+