What this book covers
Chapter 1, Setting Up FastAPI for Starters, introduces how to create FastAPI endpoints using the core module classes and decorators and how the framework manages incoming API requests and outgoing responses.
Chapter 2, Exploring the Core Features, introduces FastAPI’s asynchronous endpoints, exception handling mechanism, background processes, APIRouter for project organization, the built-in JSON encoder, and FastAPI’s JSON responses.
Chapter 3, Investigating Dependency Injection, explores the Dependency Injection (DI) pattern utilized by FastAPI to manage instances and project structure using its Depends()
directive and third-party extension modules.
Chapter 4, Building the Microservice Application, is on the principles and design patterns that support the building of microservices, such as decomposition, property configuration, logging, and domain modeling strategy.
Chapter 5, Connecting to a Relational Database, focuses on Python Object Relational Mappers (ORMs), which can integrate seamlessly with FastAPI to persist and manage data using a PostgreSQL database.
Chapter 6, Using a Non-Relational Database, showcases the PyMongo and Motor engines, including some popular Python Object Document Mapper (ODMs), which can connect FastAPI applications to a MongoDB server.
Chapter 7, Securing the REST APIs, highlights FastAPI’s built-in security module classes and explores some third-party tools such as JWT, Keycloak, Okta, and Auth0 and how they are applied to implement different security schemes to secure an application.
Chapter 8, Creating Coroutines, Events, and Message-Driven Transactions, focuses on the details of the asynchronous aspect of the FastAPI, such as the use of coroutines, the asyncio environment, asynchronous background processes using Celery, asynchronous messaging using RabbitMQ and Apache Kafka, SSE, WebSocket, and asynchronous events.
Chapter 9, Utilizing Other Advanced Features, contains other features that FastAPI can provide, such as its support for different response types, the customization of middleware, request and response, the application of other JSON encoders, and the bypassing of the CORS browser policy.
Chapter 10, Solving Numerical, Symbolic, and Graphical Problems, highlights the integration of FastAPI with the numpy
, pandas
, matplotlib
, sympy
, and scipy
modules to implement API services that can perform numerical and symbolic computations to solve mathematical and statistical problems.
Chapter 11, Adding Other Microservice Features, discusses other architectural concerns, such as monitoring and checking the properties of API endpoints at runtime, OpenTracing, client-side service discovery, managing repository modules, deployment, and creating monorepo architectures with Flask and Django apps.