APIs and API Design with Python (Python 201)

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.

Course Information

Price: $2,395.00
Duration: 5 days
Certification: API Design with Python certification
Exam: 
Learning Credits:
Course Delivery Options

Check out our full list of training locations and learning formats. Please note that the location you choose may be an Established HD-ILT location with a virtual live instructor.

Train face-to-face with the live instructor.

Access to on-demand training content anytime, anywhere.

Attend the live class from the comfort of your home or office.

Interact with a live, remote instructor from a specialized, HD-equipped classroom near you. An SLI sales rep will confirm location availability prior to registration confirmation.

All Sunset Learning dates are guaranteed to run!

Register

Prerequisites:

  • Recommended Prerequisite: Python Basics (5 days)
  • Coding experience in another language serves as an adequate prerequisite

 

Target Audience:

  • 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
  • Parse and manipulate popular data structures (JSON, CSV, Excel, and YAML) as pandas data frames
  • Best practice techniques

 

Course Outline:

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

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
  • Authentication
  • API dev keys
  • Secure password retrieval
  • Tokens and APIs
  • OAuth v2.0

API Design Practices

  • RESTful Architecture
  • SOAP overview
  • 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

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

Deploying APIs within Enterprise

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

Processes and Threads

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

Hands-On Labs:

  • Welcome to Alta3 Research Labs
  • Using vim
  • Introduction to VScode
  • Tmux Basics
  • SCM with GitLab
  • API Design with Python ‐ Certification Project
  • LECTURE ‐ Introduction to APIs
  • LECTURE ‐ Object-Oriented Programming for APIs
  • Getting dir(obj) help() and pydoc
  • LECTURE ‐ Practical Application of Lists
  • Lists
  • LECTURE ‐ Practical Application of Dict
  • Dictionaries
  • CHALLENGE ‐ List and Dict Modeling
  • Your First API Request
  • LECTURE ‐ Python data types vs JSON
  • Python Data to JSON file
  • pandas dataframes ‐ MS Excel, csv, json, HTML, and beyond
  • LECTURE ‐ Introduction to HTTP
  • Standard vs. Third-Party Libraries and Open APIs
  • requests library ‐ Open APIs
  • requests library ‐ RESTful GET and JSON parsing
  • LECTURE ‐ Visualizing API response data with Py
  • CHALLENGE ‐ Key‐pairs and HTTP GET
  • LECTURE ‐ HTTP GET vs POST
  • requests library ‐ GET vs POST to REST APIs
  • APIs and Dev Keys
  • RESTful APIs and Dev Keys
  • LECTURE ‐ OAuth
  • SOAP and Python
  • Construct a SimpleHTTPServer and HTTP Client
  • LECTURE ‐ Intro to Flask
  • Building APIs with Python
  • LECTURE ‐ Introduction to Jinja
  • Flask APIs and Jinja
  • CHALLENGE ‐ Jinja
  • CHALLENGE Solution
  • Flask APIs and Cookies
  • Flask Sessions
  • LECTURE ‐ Controlling your APIs
  • Flask Redirection, Errors, and API Limiting
  • Flask Uploading and Downloading Files
  • LECTURE ‐ Learning sqlite3
  • Tracking API Data with sqlite3
  • Tracking Inventory with sqlite3
  • Building a Production Server
  • Running Flask in a Docker Container
  • LECTURE ‐ etcd REST API
  • etcd and RESTful Client‐side Design
  • Logging API Behavior
  • Swagger
  • Designing Our Own API
  • Introduction to Django
  • LECTURE ‐ Introduction to Threads
  • Working With Threads
  • Threading API requests
  • Introduction to Async IO
  • Glossary