Book Image

Building Python Microservices with FastAPI

By : Sherwin John C. Tragura
3 (2)
Book Image

Building Python Microservices with FastAPI

3 (2)
By: Sherwin John C. Tragura

Overview of this book

FastAPI is an Asynchronous Server Gateway Interface (ASGI)-based framework that can help build modern, manageable, and fast microservices. Because of its asynchronous core platform, this ASGI-based framework provides the best option when it comes to performance, reliability, and scalability over the WSGI-based Django and Flask. When working with Python, Flask, and Django microservices, you’ll be able to put your knowledge to work with this practical guide to building seamlessly manageable and fast microservices. You’ll begin by understanding the background of FastAPI and learning how to install, configure, and use FastAPI to decompose business units. You’ll explore a unique and asynchronous REST API framework that can provide a better option when it comes to building microservices. After that, this book will guide you on how to apply and translate microservices design patterns in building various microservices applications and RESTful APIs using the FastAPI framework. By the end of this microservices book, you’ll be able to understand, build, deploy, test, and experiment with microservices and their components using the FastAPI framework.
Table of Contents (17 chapters)
1
Part 1: Application-Related Architectural Concepts for FastAPI microservice development
6
Part 2: Data-Centric and Communication-Focused Microservices Concerns and Issues
11
Part 3: Infrastructure-Related Issues, Numerical and Symbolic Computations, and Testing Microservices

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.