FastAPI - Beginner to Pro / Project 5 - Full Stack Application

Setup our FastAPI Application

🚀 Preparing Our FastAPI Project for a Full-Stack Application

In this lesson, we will begin preparing our FastAPI project so it can support a full-stack application.

The first step is to properly configure the API router for our Todo endpoints. Currently, our Todo routes do not have a clear prefix, which makes the API structure inconsistent compared to the other endpoints in our application.

To improve organization and maintainability, we will add a router prefix for all Todo-related endpoints.


📂 Reviewing the Current Router Configuration

First, navigate to the routers/todos.py file.

When you scroll down through the file, you may notice that some endpoints are defined without a clear router prefix. In other words, they are attached directly to the root path (/).

This means that when requests are made to these endpoints, the URL does not include a specific path segment that identifies them as Todo-related routes.

However, if we examine our other endpoints, we can see that they are configured using an API router that defines:

  • A prefix for the route path

  • Tags for organizing endpoints in the API documentation

To maintain consistency across our application, we need to apply the same approach to our Todo routes.


🧩 Adding a Prefix to the Todo Router

Inside the todos.py file, we will update the router configuration by adding a prefix.

This prefix ensures that all Todo-related endpoints are grouped under a common path.

Example configuration:

todos.py

router = APIRouter(
    prefix="/todos",
    tags=["todos"]
)

What this does:

  • prefix="/todos"

    Ensures that every Todo endpoint begins with /todos.

  • tags=["todos"]

    Organizes these endpoints under the Todos section in the automatically generated API documentation.

This makes the API cleaner and easier to understand.


🧪 Updating the Unit Tests

After adding the prefix, some of our tests will fail when we run them.

This happens because the test cases are still pointing to the old endpoint paths.

Since we added the /todos prefix, every Todo endpoint now starts with:

/todos

To fix this, we need to update our test file.

Navigate to:

tests/test_todos.py

Then update each endpoint in the tests so that they include the new prefix:

/todos

For example:

Before:

/

After:

/todos

Once this change is applied to all Todo-related tests, they will correctly match the updated routes.


▶️ Running the Tests Again

Now that the test paths have been updated, we can run the tests again using Pytest.

After executing the tests, everything should pass successfully.

This confirms that:

  • Our router prefix was added correctly

  • All endpoints are functioning as expected

  • Our tests are aligned with the updated routes


🧱 Preparing for the Full-Stack Phase

With these changes completed, our FastAPI application is now properly structured and ready to integrate with the technologies, frameworks, and libraries we will use to build the full-stack application.


🎬 Next Steps

In the next lesson, we will begin diving deeper into the tools and technologies that will power our full-stack Todo application.


📝 Summary

In this lesson, we:

  • Prepared our FastAPI project for full-stack development

  • Added a /todos router prefix to better organize our endpoints

  • Updated our unit tests to reflect the new route structure

  • Verified that everything works by running Pytest

These steps ensure that our API remains structured, maintainable, and ready for further development as we move into the full-stack phase of the project. 🚀