Book Image

Python API Development Fundamentals

By : Chan, Ray Chung, Jack Huang
Book Image

Python API Development Fundamentals

By: 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)

Flask-Limiter

Flask-Limiter is a Flask extension package that can let us easily add rate-limiting functionality to an endpoint. Apart from limiting the rate, it can also put the rate limit information in the HTTP header by using the RATELIMIT_HEADERS_ENABLED configuration. We, therefore, don't need to code the HTTP header information ourselves. Besides that, it also supports a configurable backend for storage with current implementations for Redis, in-memory, Memcached, and others.

We can even set multiple limits; we just need to delimit them using a delimiter. For example, we can set the limit to be 100 requests per minute and 1000 requests per hour, at the same time.

Use the following syntax to set up the rate limit for our API endpoint:

[count] [per|/] [n (optional)] [second|minute|hour|day|month|year]

Here are some examples:

100 per minute
100/minute
100/minute;1000/hour;5000/day

Now we understand how rate limits work. We will work on a practical exercise...