52. Creating a REST API with Flask
1. Basic Flask REST API Setup
A basic Flask setup with a simple route.
Copy
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api', methods=['GET'])
def api_home():
return jsonify({"message": "Welcome to the API!"})
if __name__ == '__main__':
app.run(debug=True)This simple API responds with a JSON message at the /api route.
2. Handling GET Requests
Returning data in JSON format from a GET request.
Copy
from flask import Flask, jsonify
app = Flask(__name__)
data = {
"user": "Alice",
"age": 25
}
@app.route('/api/user', methods=['GET'])
def get_user():
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)The API returns the data dictionary as JSON when accessed via the /api/user route.
3. Handling POST Requests
Accepting JSON data and responding accordingly.
Copy
This snippet allows clients to send JSON data via a POST request and get a response with the data.
4. Handling PUT Requests
Updating resources via PUT requests.
Copy
This API allows updating an existing user’s data via a PUT request.
5. Handling DELETE Requests
Deleting a resource via a DELETE request.
Copy
The /api/user route handles a DELETE request to remove the user data.
6. Query Parameters in GET Requests
Using query parameters to filter results.
Copy
This example accepts a query parameter name to customize the greeting message.
7. Handling URL Parameters
Extracting parameters from the URL.
Copy
Here, the name parameter is extracted directly from the URL and used in the response.
8. Returning Status Codes
Returning appropriate HTTP status codes in responses.
Copy
This snippet demonstrates how to return a 404 status code with a message.
9. Flask API with Authentication (Basic Auth)
Securing API routes with basic authentication.
Copy
This route requires basic authentication using the Authorization header.
10. Flask API with JSON Schema Validation
Validating JSON data with a schema using marshmallow.
Copy
This example shows how to validate input data against a schema using marshmallow.
These snippets cover a range of common functionalities when building RESTful APIs with Flask, such as handling different HTTP methods, query parameters, authentication, error handling, and validation.
Last updated