back
loading skill details...
flask-api-development — an installable skill for AI agents, published by aj-geddes/useful-ai-prompts.
Flask API Development
Table of Contents
Overview
When to Use
Quick Start
Reference Guides
Best Practices
Overview
Create efficient Flask APIs with blueprints for modular organization, SQLAlchemy for ORM, JWT authentication, comprehensive error handling, and proper request validation following REST principles.
When to Use
Building RESTful APIs with Flask
Creating microservices with minimal overhead
Implementing lightweight authentication systems
Designing API endpoints with proper validation
Integrating with relational databases
Building request/response handling systems
Quick Start
Minimal working example:
# app.py
from flask import Flask, request, jsonify
from flask_cors import CORS
from flask_sqlalchemy import SQLAlchemy
from flask_jwt_extended import JWTManager
import os
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', 'sqlite:///app.db')
app.config['JWT_SECRET_KEY'] = os.getenv('JWT_SECRET_KEY', 'dev-secret')
app.config['JSON_SORT_KEYS'] = False
db = SQLAlchemy(app)
jwt = JWTManager(app)
CORS(app)
# Request ID middleware
@app.before_request
def assign_request_id():
import uuid
request.request_id = str(uuid.uuid4())
# Error handlers
@app.errorhandler(400)
def bad_request(error):
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
Guide
Contents
Flask Application Setup
Flask Application Setup
Database Models with SQLAlchemy
Database Models with SQLAlchemy
Authentication and JWT
Authentication and JWT
Blueprints for Modular API Design
Blueprints for Modular API Design
Request Validation
Request Validation
Application Factory and Configuration
Application Factory and Configuration
Best Practices
✅ DO
Use blueprints for modular organization
Implement proper authentication with JWT
Validate all user input
Use SQLAlchemy ORM for database operations
Implement comprehensive error handling
Use pagination for collection endpoints
Log errors and important events
Return appropriate HTTP status codes
Implement CORS properly
Use environment variables for configuration
❌ DON'T
Store secrets in code
Use global variables for shared state
Ignore database transactions
Trust user input without validation
Return stack traces in production
Use mutable default arguments
Forget to handle database connection errors
Implement authentication in route handlers
26:[don't have the plugin yet? install it then click "run inline in claude" again.