Type Here to Get Search Results !

How to build a RESTful API in Python Flask?

How to build a RESTful API in Python Flask?

In today’s tech-driven world, APIs (Application Programming Interfaces) play a crucial role in connecting different software systems. They…

RESTful API in Python Flask

How to build a RESTful API in Python Flask?

In today’s tech-driven world, APIs (Application Programming Interfaces) play a crucial role in connecting different software systems. They enable applications to communicate with each other, share data, and perform various operations. One of the popular frameworks for building APIs in Python is Flask. In this blog, we’ll walk through the steps to build a simple RESTful API using Flask.

What is Flask?

Flask is a micro web framework written in Python. It’s lightweight, easy to use, and provides the essentials to build web applications quickly. Flask is often used for building small to medium-sized applications, including APIs.

Prerequisites

Before we start, make sure you have Python installed on your system. You can download it from the official website. Also, ensure you have a basic understanding of Python and RESTful principles.

Setting Up the Environment

  1. Install Flask
  2. First, we need to install Flask. Open your terminal or command prompt and run the following command:
pip install Flask

Create a Project Directory

Create a new directory for your project and navigate into it:

mkdir flask_api
cd flask_api

Create a Virtual Environment

It’s a good practice to create a virtual environment for your projects to manage dependencies. Run the following commands:

python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`

Building the API

  1. Create the Flask Application
  2. Inside your project directory, create a new file named app.py. This will be the main file for our Flask application.
from flask import Flask, jsonify, request

app = Flask(__name__)

@app.route('/')
def index():
return jsonify({"message": "Welcome to the Flask API!"})

if __name__ == '__main__':
app.run(debug=True)
  • In this code, we import Flask and create a new instance of it. We define a simple route (/) that returns a JSON message. Finally, we run the application in debug mode.
  • Define the API Endpoints
  • Let’s define a few API endpoints to perform CRUD (Create, Read, Update, Delete) operations on a list of users.
users = [
{"id": 1, "name": "John Doe", "email": "john.doe@example.com"},
{"id": 2, "name": "Jane Smith", "email": "jane.smith@example.com"}
]

@app.route('/users', methods=['GET'])
def get_users():
return jsonify(users)

@app.route('/users/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = next((user for user in users if user['id'] == user_id), None)
return jsonify(user) if user else (jsonify({"error": "User not found"}), 404)

@app.route('/users', methods=['POST'])
def create_user():
new_user = request.get_json()
new_user['id'] = len(users) + 1
users.append(new_user)
return jsonify(new_user), 201

@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
user = next((user for user in users if user['id'] == user_id), None)
if user:
data = request.get_json()
user.update(data)
return jsonify(user)
return jsonify({"error": "User not found"}), 404

@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
global users
users = [user for user in users if user['id'] != user_id]
return jsonify({"message": "User deleted"})

Here, we define five endpoints:

  • GET /users: Retrieves the list of users.
  • GET /users/<user_id>: Retrieves a specific user by ID.
  • POST /users: Creates a new user.
  • PUT /users/<user_id>: Updates an existing user.
  • DELETE /users/<user_id>: Deletes a user.

Running the Application

To run the application, execute the following command in your terminal:

python app.py

Your Flask application should now be running on http://127.0.0.1:5000/

You can test the endpoints using a tool like Postman or curl.

Conclusion

In this blog, we built a simple RESTful API using Flask in Python. Flask’s simplicity and flexibility make it an excellent choice for building APIs and web applications. You can extend this example by adding more features, such as database integration, authentication, and error handling.

Happy coding!

Post a Comment

0 Comments
* Please Don't Spam Here. All the Comments are Reviewed by Admin.

Top Post Ad

Below Post Ad