Book Image

Python API Development Fundamentals

By : Jack Chan, Ray Chung, Jack Huang
Book Image

Python API Development Fundamentals

By: Jack Chan, Ray Chung, Jack Huang

Overview of this book

Python is a flexible language that can be used for much more than just script development. By knowing the Python RESTful APIs work, you can build a powerful backend for web applications and mobile applications using Python. You'll take your first steps by building a simple API and learning how the frontend web interface can communicate with the backend. You'll also learn how to serialize and deserialize objects using the marshmallow library. Then, you'll learn how to authenticate and authorize users using Flask-JWT. You'll also learn how to enhance your APIs by adding useful features, such as email, image upload, searching, and pagination. You'll wrap up the whole book by deploying your APIs to the cloud. By the end of this book, you'll have the confidence and skill to leverage the power of RESTful APIs and Python to build efficient web applications.
Table of Contents (12 chapters)

Introduction

We added pagination, searching, and ordering functions to our Smilecook application in our last chapter so that users can navigate to their recipes much easier. This also helps to reduce the server burden and improve performance. We have explained how making our APIs snappy is important in today's world.

In this chapter, we will be further improving our API performance from another aspect. We will be adding in the cache function, which will temporarily save data to the application memory. This will allow us to save the time required to query the database every time. This can greatly improve API performance and reduce server burden. There is a Flask extension package, Flask-Caching, that can help us in implementing the caching function. We will first talk about the theory behind caching, and through practical exercises, we show you how to implement this function in our Smilecook application.

Besides caching, we will implement a rate-limiting function. That will...