Skip to content

Sagar Kunwar

Menu
  • Home
  • YouTube
  • Blog
  • Contact
  • Privacy Policy
Menu

How to Create a RESTful API with FastAPI in Python

Posted on July 5, 2025July 5, 2025 by Sagar Kunwar

How to Create a RESTful API with FastAPI in Python

Hey there, budding developer! ๐ŸŒŸ Are you ready to dive into the world of APIs and create your very own RESTful API using FastAPI in Python? Great! FastAPI is a fantastic framework that’s quickly gained popularity due to its speed, ease of use, and modern features. Whether you’re building a snazzy web app or the backend for a mobile app, understanding how to create your RESTful API is a crucial skill. Let’s get started!

What Is FastAPI?

Before we roll up our sleeves, let’s talk about FastAPI. It’s a modern, fast (high-performance) web framework for building APIs with Python 3.7+ based on standard Python type hints. FastAPI is known for automatic interactive API documentation, high performance (thanks to it being built on top of Starlette and Pydantic), and ease of use when defining routes and schema.

Setting Up Your Environment

Before jumping into the code, make sure you have the following prerequisites:

– Python 3.7+: If you haven’t already, download and install Python from python.org.
– Pip: Pythonโ€™s package installer should be included with Python.

Now, let’s install FastAPI and a server to run your API, like Uvicorn, an ASGI server:

bash
pip install fastapi
pip install uvicorn

Great! Youโ€™re ready to build your first API. ๐ŸŽ‰

Creating Your First FastAPI Application

Let’s create a simple API that lets users manage a list of items.

1. Create a new directory for your project:

bash
mkdir fastapi_project
cd fastapi_project

2. Create a new Python file named main.py:

bash
touch main.py

3. Writing Your First Endpoint:

Open main.py and start with this code:

python
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
return {"Hello": "World"}

What does this code do?

– from fastapi import FastAPI imports FastAPI.
– app = FastAPI() creates an instance of FastAPI.
– @app.get("/") is a decorator that tells FastAPI that the function below corresponds to the root path, /, of your API. It responds to GET requests.
– async def read_root(): is an asynchronous function (which is standard practice with FastAPI for performance) that returns a JSON response.

Running Your API

To see your API in action, run the development server using uvicorn:

bash
uvicorn main:app --reload

– main:app tells uvicorn to look for the FastAPI app in main.py.
– --reload enables auto-reload for code changes โ€” handy during development!

Head over to http://127.0.0.1:8000 in your browser, and you’ll see:

json
{"Hello": "World"}

Congrats! You’ve just built your first FastAPI application! ๐ŸŽˆ

Adding More Endpoints

Let’s enhance our API to manage items with the following endpoints:

– List all items
– Retrieve an item by ID
– Add a new item
– Delete an item

Here’s your updated main.py:

python
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
name: str
price: float
is_offer: bool = None

items = {}

@app.get("/items/")
async def read_items():
return items

@app.get("/items/{item_id}")
async def read_item(item_id: int):
return items.get(item_id, "Item not found")

@app.post("/items/")
async def create_item(item_id: int, item: Item):
items[item_id] = item
return item

@app.delete("/items/{item_id}")
async def delete_item(item_id: int):
if item_id in items:
del items[item_id]
return {"Message": "Item deleted"}
return {"Message": "Item not found"}

How It Works:

– BaseModel from pydantic is used to define an item, with fields like name, price, and an optional is_offer.
– The items dictionary acts as a simple in-memory store.
– /items/ endpoints allow you to list, add, retrieve by ID, and delete items.

Interactive API Documentation

FastAPI offers automatic interactive API documentation powered by Swagger UI. Head over to http://127.0.0.1:8000/docs and check out the interactive docs โ€” isnโ€™t that cool? ๐Ÿ˜Ž FastAPI also offers docs in ReDoc style at http://127.0.0.1:8000/redoc.

Wrapping Up

Youโ€™ve just built a RESTful API with FastAPI in Python โ€” how awesome is that? ๐ŸŽ‰ FastAPIโ€™s design not only makes development faster and easier but also keeps your codebase tidy and maintainable.

Practice Ideas

To further solidify your knowledge, try these practice ideas:

– Add an update endpoint to modify items.
– Implement error handling to return custom error messages.
– Explore more FastAPI features like dependencies and authentication.

Feel free to explore and expand on what you’ve learned here. Practice makes perfect, and remember, the world is your oyster in software development! ๐Ÿš

Thanks for coding along with me, and I hope you enjoyed it. Happy coding! ๐Ÿš€

FastAPI Logo

(Visited 7 times, 1 visits today)

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Guide to Responsive Images with `srcset`
  • # Creating and Validating Forms in React with Formik
  • Setting Up Multiple Pages with React Router DOM v6
  • How to Use VS Code Like a Pro: Extensions and Shortcuts

Categories

  • Blog
  • Javascript
  • PHP
  • Support
  • Uncategorized
  • Web Hosting
July 2025
S M T W T F S
 12345
6789101112
13141516171819
20212223242526
2728293031  
« Jun   Aug »
© 2025 Sagar Kunwar | Powered by Superbs Personal Blog theme