Shweta Palande

Devouring APIs with Python

Your Python API calls could be 10x faster. Learn to switch from synchronous requests to a truly non-blocking asynchronous library.

Devouring APIs with Python
#1about 2 minutes

Understanding the role of an application programming interface (API)

An API acts as a communication layer that allows different software applications, like a taxi app and Google Maps, to exchange data and functionality.

#2about 4 minutes

Deconstructing the components of a REST API URL

A REST API URL is broken down into the protocol, server host, resource path, and optional parameters for filtering data.

#3about 1 minute

Distinguishing between client libraries and API frameworks

Client libraries like `requests` are used to send HTTP requests to endpoints, while API frameworks like `Flask` provide tools to build your own API endpoints.

#4about 5 minutes

Making synchronous requests with the Python requests library

The `requests` library simplifies making HTTP GET and POST requests in Python with a clean, one-line syntax.

#5about 6 minutes

Using the pycurl library as a libcurl wrapper

The `pycurl` library provides a Python interface to `libcurl` for making API calls, offering more control but with a more complex syntax than `requests`.

#6about 5 minutes

Building a simple API with the Flask microframework

Flask allows developers to quickly define API routes and handle different HTTP methods using decorators on Python functions.

#7about 3 minutes

Structuring APIs with the Flask-RESTful extension

The Flask-RESTful extension adds a layer of abstraction for building REST APIs by organizing endpoints into resources, leading to cleaner code.

#8about 8 minutes

Demonstrating synchronous API calls with a live coding example

A synchronous script using the `requests` library fetches 100 URLs sequentially, highlighting the performance bottleneck of waiting for each request to complete.

#9about 3 minutes

Explaining multiprocessing and multithreading with analogies

Multiprocessing achieves true parallelism with multiple CPUs, while multithreading creates the illusion of parallelism on a single CPU, constrained by Python's GIL.

#10about 13 minutes

Achieving high performance with asyncio and aiohttp

Using `asyncio` with the `aiohttp` library enables non-blocking API calls, drastically reducing execution time by performing other tasks while waiting for I/O.

#11about 1 minute

Exploring resources for further API development learning

Cisco DevNet offers learning labs, code samples, and automation exchanges to help developers expand their Python and REST API skills.

#12about 7 minutes

Q&A on concurrency models and developer tools

The discussion covers when to choose different concurrency models, favorite VS Code plugins like Tabnine and Acrolinx, and best practices for error handling.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

From learning to earning

Jobs that call for the skills explored in this talk.

Python Developer

LiveLink
Havant, United Kingdom

Remote
C++
GIT
Linux
NumPy
+3