YoVDO

Python API Development - Comprehensive Course for Beginners

Offered By: freeCodeCamp

Tags

Python Courses SQL Courses GitHub Actions Courses FastAPI Courses pytest Courses API Design Courses CI/CD Pipelines Courses Serialization Courses Deserialization Courses

Course Description

Overview

Embark on a comprehensive 19-hour journey into Python API development, mastering FastAPI to build a full-fledged API from scratch. Dive deep into API design fundamentals, including routes, serialization/deserialization, schema validation, and models. Explore SQL, testing with pytest, and learn to implement a CI/CD pipeline using GitHub actions. Begin with Python and VS Code setup, progress through virtual environments and dependency management, and advance to complex topics like database integration, ORM usage, authentication, and deployment. Gain hands-on experience with PostgreSQL, SQLAlchemy, JWT tokens, and CORS. Delve into production-ready practices, including Docker containerization, NGINX configuration, and SSL implementation. Conclude with extensive coverage of testing methodologies and CI/CD processes, equipping you with the skills to develop, test, and deploy robust Python APIs.

Syllabus

Intro.
Project Overview.
Mac Python Installation.
Mac VS Code install and setup.
Windows Python Installation.
Windows VS Code install and setup.
Python virtual Env Basics.
Virtual Env on windows.
Virtual Env on Mac.
Install dependencies w/ pip.
Starting FastAPI.
Path Operations.
Intro toman.
HTTP Requests.
Schema Validation with Pydantic.
CRUD Operations.
Storing in Array.
Creating.
Postman Collections & saving requests.
Retrieve One.
Path order Matters.
Changing response Status Codes.
Deleting.
Updating.
Automatic Documentation.
Python packages.
Database Intro.
Postgres Windows Install.
Postgres Mac Install.
Database Schema & Tables.
Managing Postgres with PgAdmin GUI.
Your first SQL Query.
Filter results with "where".
SQL Operators.
IN.
Pattern matching with LIKE.
Ordering Results.
LIMIT & OFFSET.
Modifying Data.
Setup App Database.
Connecting to database w/ Python.
Database CRUD.
ORM intro.
SQLALCHEMY setup.
Adding CreatedAt Column.
Get All.
Create.
Get by ID.
Delete.
Update.
Pydantic vs ORM Models.
Pydantic Models Deep Dive.
Response Model.
Creating Users Table.
User Registration Path Operation.
Hashing Passwords.
Refractor Hashing Logic.
Get User by ID.
FastAPI Routers.
Router Prefix.
Router Tags.
JWT Token Basics.
Login Process .
Creating Token.
OAuth2 PasswordRequestForm.
Verify user is Logged In.
Fixing Bugs.
Protecting Routes.
Test Expired Token.
Fetching User in Protected Routes.
Postman advanced Features.
SQL Relationship Basics.
Postgres Foreign Keys.
SQLAlchemy Foreign Keys.
Update Schema to include User.
Assigning Owner id when creating new.
Delete and Update only your own.
Only Retrieving Logged in User's.
Sqlalchemy Relationships.
Query Parameters.
Cleanup our main.py file.
Env Variables.
Vote/Like Theory.
Votes Table.
Votes Sqlalchemy.
Votes Route.
SQL Joins.
Joins in SqlAlchemy.
Get One with Joins.
What is a database migration tool.
Alembic Setup.
Disable SqlAlchemy create Engine.
What is CORS?.
Git PreReqs.
Git Install.
Github.
Heroku intro.
Create Heroku App.
Heroku procfile.
Adding a Postgres database.
Env Variables in Heroku.
Alembic migrations on Heroku Postgres instance.
Pushing changed to production.
Create an Ubuntu VM.
Update packages.
Install Python.
Install Postgres & setup password.
Postgres Config.
Create new user and setup python evironment.
Env Variables.
Alembic migrations on production database.
Gunicorn.
Creating a Systemd service.
NGINX.
Setting up Domain name.
SSL/HTTPS.
NGINX enable.
Firewall.
Pushing code changes to Production.
Dockerfile.
Docker Compose.
Postgres Container.
Bind Mounts.
Dockerhub.
Production vs Development.
Testing Intro.
Writing your first test.
The -s & -v flags.
Testing more functions.
Parametrize.
Testing Classes.
Fixtures.
Combining Fixtures + Parametrize.
Testing Exceptions.
FastAPI TestClient.
Pytest flags.
Test create user.
Setup testing database.
Create & destroy database after each test.
More Fixtures to handle database interaction.
Trailing slashes in path.
Fixture scope.
Test user fixture.
Test/validate token.
Conftest.py.
Testing.
CI/CD intro.
Github Actions.
Creating Jobs.
setup python/dependencies/pytest.
Env variables.
Github Secrets.
Testing database.
Building Docker images.
Deploy to heroku.
Failing tests in pipeline.
Deploy to Ubuntu.


Taught by

freeCodeCamp.org

Related Courses

Configuración de APIs en Python: Crea un API REST
Coursera Project Network via Coursera
GenAI Chatbots: Create and Deploy OpenAI-Powered Chatbots
Coursera Project Network via Coursera
Git for developers: managing workflows and conflicts
Coursera Project Network via Coursera
ChatGPT Voice-Powered Chatbot Build with React and FastAPI
Packt via Coursera
Event-Driven Architecture with React and FastAPI – Full Course
freeCodeCamp