flask-api-development — Claude Code skill: overview & setup
Builds modular Flask REST APIs using blueprints, SQLAlchemy ORM, and JWT authentication. It helps organize microservices and validate incoming request payloads.
npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a claude-codeWhat flask-api-development does
This skill structures Flask applications around an application factory pattern. It organizes routes into blueprints, attaches request ID middleware using uuid, and adds global HTTP error handlers. Database persistence relies on SQLAlchemy, while endpoint protection uses flask_jwt_extended and flask_cors.
The instructions enforce clear architecture boundaries. Routes cannot validate input manually without schemas or leak error tracebacks in production environments. Authentication stays out of individual route handlers and runs via tokens. Configuration is strictly read from environment variables like DATABASE_URL and JWT_SECRET_KEY.
Leaving hardcoded secrets or skipping database transaction management breaks this specification immediately.
What it helps with
- organize Flask API routes into modular blueprints
- set up JWT authentication using flask_jwt_extended
- integrate SQLAlchemy ORM with relational databases
- implement request ID tracking and centralized HTTP error handling
Example prompts for the agent
- Generate a Flask REST API project structure with blueprints and application factory
- Add SQLAlchemy models and JWT authentication to my Flask service
- Set up request validation and request ID middleware in Flask
How to install flask-api-development
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a claude-code2Manually: put the files in place
~/.claude/skills/flask-api-development/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/flask-api-development/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a codex2Manually: put the files in place
.agents/skills/flask-api-development/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a cursor2Manually: put the files in place
.cursor/skills/flask-api-development/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts flask-api-development2Manually: put the files in place
.github/skills/flask-api-development/SKILL.md1Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a gemini-cli2Platform CLI
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/flask-api-developmentManually: put the files in place
.devin/skills/flask-api-development/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about flask-api-development
How to install flask-api-development in Claude Code?
Run npx skills add aj-geddes/useful-ai-prompts --skill flask-api-development -a claude-code in your terminal.
What does flask-api-development do?
It defines architectural guidelines for Flask REST APIs, including blueprints, SQLAlchemy ORM integration, JWT authentication, and request handling.
Which environment variables are required by the template?
The configuration expects DATABASE_URL for database connectivity and JWT_SECRET_KEY for signing authentication tokens.
Source text
SKILL.md · MIT
---
name: flask-api-development
description: >
Develop lightweight Flask APIs with routing, blueprints, database integration,
authentication, and request/response handling. Use when building RESTful APIs,
microservices, or lightweight web services with Flask.
---
# Flask API Development
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#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:
```python
# 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](references/flask-application-setup.md) | Flask Application Setup |
| [Database Models with SQLAlchemy](references/database-models-with-sqlalchemy.md) | Database Models with SQLAlchemy |
| [Authentication and JWT](references/authentication-and-jwt.md) | Authentication and JWT |
| [Blueprints for Modular API Design](references/blueprints-for-modular-api-design.md) | Blueprints for Modular API Design |
| [Request Validation](references/request-validation.md) | Request Validation |
| [Application Factory and Configuration](references/application-factory-and-configuration.md) | 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
© aj-geddes · MIT · aj-geddes/useful-ai-prompts