Skip to main content Link Menu Expand (external link) Document Search Copy Copied

What I’ve Learned (So Far)

I’ve learned about API develompent and much more.


I’ll come back and add more to this section at a later date. I’m still working through the back half of the course, but I wanted to share my progress. I’d like to post a few code examples and talk about some of the sticking points I faced when working through this proje. I’m very near the point of deploying the application.

Why I took this course

I’ve been interested in learning how to develop API’s for a while now, but haven’t had a chance to develop one professionally. I have interacted with API’s through my work, and doing this tutorial has given me a much greater understanding of what an API really is and how they work. I could imagine this training coming in handy if I ever want to write up an API to serve an ML model. This project will serve as additional documentation of patterns and code that I can use when that time comes. My professional development experience has mostly focused on data engineering tasks such as building Spark applications hosted on Hadoop or Databricks. I see this course as a breadth-of-knowledge opportunity to help me develop more skills as a software engineer and also a change get practice implementing CI/CD patterns.

Topics already covered

This tutorial has familiarized me with many aspects of web dev, databases, and APIs. Here are just a few of the topics I’ve studied so far:

  • FastAPI path operations, routers, and general API structure
  • Pydantic models for schema validation
  • Setting up a PostgreSQL database locally
  • Database design, table constraints, and foreign keys
  • Authorization using bearer tokens / JWT
  • Using SQLAlchemy as an ORM for interacting with a database
  • Using a .env file with Pydantic base settings to manage local config
  • Useful Postman features such as collections and environment variables
  • Solving all of the little issues that arise with Python libraries, package management, venvs, etc. that arise when trying to get something actually running on your machine!

Next Steps

I’ll be working on deploying my API using one or more of the methods taught in the course. I have some experience using GitHub actions for build and deployment pipelines, but this will be one more chance to practice those skills and also automate unit and intergration tests. I’ll write more once I complete that task!