Want to build a **REST API** using Flask? In this tutorial, we’ll walk you through creating a **Flask RESTful API** with **GET and POST** requests step by step. Flask makes it easy to build lightweight, scalable, and efficient APIs for web and mobile applications.

By the end of this tutorial, you'll have a fully functional **Flask API** that can **send and receive JSON data** using HTTP requests.

---

## ** What You’ll Learn in This Video:**
Setting up Flask for API Development
Creating a Flask RESTful API with `Flask` and `Flask-RESTful`
Handling **GET & POST Requests**
Sending & Receiving **JSON Data**
Running & Testing the API with **Postman or cURL**

---

## ** Prerequisites**
Before starting, ensure you have:
**Python 3.x** installed → [Download Python](https://www.python.org/downloads/)
**Flask & Flask-RESTful Installed**
**VS Code or Any Code Editor**

---

## ** Step-by-Step Guide**

### **1⃣ Install Required Packages**
Open the terminal and run the following command:

```bash
# Create a project directory
mkdir flask-rest-api && cd flask-rest-api

# Create a virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate

# Install Flask and Flask-RESTful
pip install flask flask-restful
```

---

### **2⃣ Create a Flask API Project**
Create a new file called **`app.py`** and add the following code:

```python
from flask import Flask, request, jsonify
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

# Sample in-memory data
data = []

# Define a Resource for GET and POST
class ItemResource(Resource):
def get(self):
return jsonify({"items": data})

def post(self):
new_item = request.get_json() # Get JSON data from request
data.append(new_item)
return jsonify({"message": "Item added!", "item": new_item})

# Add the resource to the API
api.add_resource(ItemResource, "/items")

if __name__ == "__main__":
app.run(debug=True)
```

---

### **3⃣ Run the Flask API Server**
Save the file and run:

```bash
python app.py
```

You should see Flask running on **http://127.0.0.1:5000**

---

### **4⃣ Test the API with GET & POST Requests**

#### ** GET Request (Fetch Items)**
Open a browser or Postman and visit:
**http://127.0.0.1:5000/items**
It should return:
```json
{"items": []}
```

#### ** POST Request (Add an Item)**
Use **Postman** or cURL to send a **POST request** with JSON data:

```json
{
"name": "Laptop",
"price": 1200
}
```

**Postman Setup:**
- Select **POST**
- Enter **http://127.0.0.1:5000/items**
- Go to **Body** → **raw** → **JSON**
- Paste the JSON data and hit **Send**

The API will respond:
```json
{
"message": "Item added!",
"item": {
"name": "Laptop",
"price": 1200
}
}
```

---

### **5⃣ Fetch Updated Items**
Re-run the **GET request** to **http://127.0.0.1:5000/items**
Now it should return the updated list:
```json
{
"items": [
{
"name": "Laptop",
"price": 1200
}
]
}
```

---

## ** Who Is This Tutorial For?**
Web Developers Building APIs
Backend Engineers Working with REST APIs
Anyone Looking to Learn API Development with Flask

---

## ** Resources Mentioned in This Video:**
Flask Documentation → [https://flask.palletsprojects.com/](https://flask.palletsprojects.com/)
Flask-RESTful Docs → [https://flask-restful.readthedocs.io/](https://flask-restful.readthedocs.io/)

---

## ** Pro Tips for API Development**
Use **Postman** to test API endpoints.
Add **error handling** for better responses.
Use a **database (MySQL, PostgreSQL, SQLite)** instead of in-memory storage.
Deploy your API using **Docker, AWS, or GCP**.

---

## ** Like, Share & Subscribe!**
If this tutorial helped you, please **LIKE, SHARE, and SUBSCRIBE** for more **Flask, Python, and Web Development** tutorials!

Got questions? Drop them in the **comments** below!

---

### ** Hashtags:**
#Flask #API #RESTAPI #Python #WebDevelopment #Backend #FlaskTutorial #PythonAPI #APIDevelopment #FlaskRestful

Start building your Flask REST API today!