Welcome to the advanced course on building a Backend REST API using Python, Django (2.0), Django REST Framework (3.9), Docker, Travis CI, Postgres, and Test Driven Development! Whether you’re a freelance programmer, tech entrepreneur, or just starting out, this course will lay the foundation of your knowledge base and equip you with tools to advance your skills using some of the most in-demand programming languages today.
Why Learn to Build APIs?
APIs are the unsung heroes behind the technologies that we all love and use religiously. One of the most critical components for any tech-based business is an API. Knowing how to create an API from start to finish is a vital developer skill. A successful app cannot be built without a backend REST API!
Course Overview
In this course, I'll show you how to build an advanced API capable of:
- Creating and updating user profiles
- Changing passwords
- Creating objects and uploading images
- Filtering and searching objects
The project you'll build alongside me is a recipe API that allows you to upload and store your favorite recipes from photos and the web. You'll create objects with titles, price points, cooking times, ingredients, and tags like "comfort food", "vegan", or "dessert". Consider it your virtual recipe box!
What You'll Achieve
By the end of this course, you will have built a fully functioning REST API that can handle:
- User authentication
- Creating objects
- Filtering and sorting objects
- Uploading and viewing images
Skills and Tools You'll Master
- Setting up a project with Docker and Docker-Compose
- Configuring Travis CI to automatically run linting and unit tests
- Writing unit tests using the Django Test Framework
- Applying best practices, including Test Driven Development
- Handling media file uploads with Django
- Customizing the Django admin interface
- Configuring a Postgres database
This course focuses on teaching you how to create an advanced API from scratch using best practices and Test Driven Development.
Is This Course Right for You?
This course is NOT for you if:
- You're looking for a course to build an API, a front-end, and deployment
- You want a course to build 10 different apps
- You're seeking to learn various technologies and approaches to app development in general
This is a hands-on course with some theory and many opportunities to test your knowledge. The content is challenging but rewarding. Ready for it? Let’s dive in!
**Please Note: You cannot run Docker on Windows 10 Home edition because it requires Windows 10 Pro or Enterprise for Hyper-V virtualization. Two options are covered in Lecture 6, which is free to preview before purchasing the course.
Course Prerequisites
- Basic programming knowledge and experience building simple applications
- Familiarity with Django
- Comfort in using command line tools (Terminal/Command Prompt)
- A macOS, Linux, or Windows machine capable of running Docker (excludes Windows 10 Home)
- Positive attitude and willingness to learn!
Intended Audience
- Intermediate programmers with some understanding of Python wanting to skill up
- Developers proficient in other languages intending to add Python to their toolkit
Key Learning Objectives
What you'll learn:- Setting up a local development server with Docker
- Writing a Python project using Test Driven Development
- Building a REST API with advanced features like uploading and viewing images
- Creating a backend usable as a base for future projects or MVPs
- Hands-on experience applying best practice principles such as PEP-8 and unit tests
- Configuring Travis CI to automate code checks