Python 201 - APIs and API Design with Python (AADP)


Course Overview

Application Programming Interfaces (APIs) have become increasingly important as they provide developers with connectivity to everything from rich datasets in an array of formats (such as JSON) to exposing the configurability of software applications and network appliances. Lessons and labs focus on using Python to interact, design, and build APIs for the purposes of scripting automated solutions to complex tasks. Class is a combination of live demonstrations and hands-on labs.


  • Recommended Prerequisite: Python Basics (5 days)
  • Coding experience in another language serves as an adequate prerequisite
  • Who Should Attend
  • System Administrators
  • Network Engineers
  • Software Developers
  • Python Enthusiasts

Course Objectives

  • Client side Python Scripting to RESTful (and non-RESTful) APIs
  • Design RESTful API interfaces with Flask Web Framework
  • Overview of Django
  • Deploy your Python web apps as Docker containers
  • Open SSH sessions and pass commands to remote servers
  • Move files via SFTP
  • Parse and manipulate popular data structures (JSON, CSV, Excel, and YAML) as pandas dataframes
  • Best practice techniques

Follow On Courses

Outline: Python 201 - APIs and API Design with Python (AADP)

Python Review

  • Version Control with Git
  • Lists
  • Dictionaries
  • Conditionals (if, elif, else)
  • Loops (for and when)
  • Functions
  • Classes and Methods
  • Using pip

Working with Data - JSON, YAML, CSV and Excel

  • JSON RFC 7159
  • JSON Formatting
  • YAML intro
  • YAML Formatting
  • Python Libraries for decoding JSON, YAML and CSV
  • Reading and Writing to Excel
  • Dataframes and pandas

SSH Communication and SFTP

  • Python and SSH
  • Building an SFTP Client & Server
  • Python and SFTP limitations
  • Paramiko for SSH
  • Netmiko and Major Network Vendors (Cisco, Juniper, Arista)

Web and RESTful APIs

  • Creating an HTTP Client & Server with Python
  • Introduction to REST
  • RESTful API on Etcd keystore (Kubernetes distributed DB)
  • Creating a Python client to interact with API endpoints
  • API dev keys
  • Secure password retrieval
  • Tokens and APIs
  • OAuth v2.0

API Design Practices

  • RESTful Architecture
  • Stubbing code with Swagger
  • Describing Resource functionality (GET, POST, PUT, DELETE, etc.)
  • Collections, resources, and URLs
  • Using nouns, not verbs
  • Understanding HTTP status codes
  • Returning data

Building APIs with Flask

  • Flask Overview
  • Decorators
  • Building APIs with Python and Flask
  • APIs returning Jinja2 templating
  • Returning a ‘cookie’
  • Building Sessions
  • Redirecting from URIs
  • Build an API to accept a file upload
  • Overview of Django

Deploying APIs

  • Docker containers
  • Docker build
  • Constructing Docker images
  • Dockerfile
  • Deploying a Flask App on Docker
  • Automating build processes

Database Integration

  • Overview
  • Connecting to Python
  • Read / Write operations
  • Other useful instructions
  • Connecting APIs and SQLite
  • Python and PostgreSQL
  • Python and MongoDB
  • Reading and Writing to Databases with APIs

Processes and Threads

  • Threading
  • Context change
  • Deadlock errors
  • Thread starvation
  • Racing conditions and racing specifics
  • Working with Locks

Prices & Delivery methods

Online Training

5 days

  • Online Training: CAD 3,160
  • Online Training: US$ 2,395
Classroom Training

5 days

  • Canada: CAD 3,160

Click on town name or "Online Training" to book Schedule

This is an Instructor-Led Classroom course
Guaranteed date:   We will carry out all guaranteed training regardless of the number of attendees, exempt from force majeure or other unexpected events, like e.g. accidents or illness of the trainer, which prevent the course from being conducted.
Instructor-led Online Training:   This computer icon in the schedule indicates that this date/time will be conducted as Instructor-Led Online Training.
*   This class is delivered by a partner.

United States

Guaranteed to Run Online Training 10:00 US/Eastern * Enroll
Online Training 10:00 US/Eastern * Enroll
Online Training 10:00 US/Eastern * Enroll