python-backend skill
Build production-ready REST APIs using FastAPI, SQLAlchemy, and Upstash with a focus on async performance and security.
- GitHub 스타
- 10
- 파일
- 5
- 마지막 커밋
- 2026년 1월 25일
- 라이선스
- MIT
- 허용된 도구
- —
python-backend skill은 무엇을 하나요?
python-backend은(는) agent skill입니다. Build production-ready REST APIs using FastAPI, SQLAlchemy, and Upstash with a focus on async performance and security.
skill의 SKILL.md에서 생성된 요약입니다.
python-backend skill 정보
Developing production-ready REST APIs with a focus on asynchronous performance is the primary function of this skill. Developers use it to architect backend systems using FastAPI, SQLAlchemy, and Upstash. It provides specific patterns for implementing JWT or OAuth2 authentication, setting up async database sessions, and integrating Redis for caching and rate limiting.
An agent should load this skill when tasked with building new API structures, designing database models, or refactoring existing Python code to improve quality. It produces structured code following async-first principles, utilizing Pydantic models for strict data validation and FastAPI's dependency injection system. The skill relies on specific patterns for project organization and security to ensure that user input is validated early and the event loop remains non-blocking.
agent가 수행할 수 있는 작업
- 1Build a FastAPI REST APICreate a structured backend service using FastAPI and Pydantic for data validation.
- 2Implement Secure AuthenticationSet up user security using JWT or OAuth2 protocols.
- 3Configure Async Database OperationsEstablish asynchronous database connections and sessions using SQLAlchemy.
- 4Add Redis Caching and Rate LimitingIntegrate Upstash to manage data caching and protect endpoints from excessive requests.
- 5Refactor AI Generated CodeClean up and optimize Python code generated by AI to meet production standards.
skill의 SKILL.md를 기반으로 작성되었습니다. 모든 사용 사례는 해당 문서의 인용구와 대조 확인되었습니다.
python-backend skill 설치 방법
각 명령은 skill 폴더를 클라이언트의 skills 디렉터리에 복사합니다. 클라이언트를 재시작하거나 새 세션을 시작하여 로드하세요.플러그인에 python-backend skill 설치
/plugin marketplace add jiatastic/open-python-skills /plugin install open-python-skills@open-python-skills
Claude Code에 python-backend skill 설치
~/.claude/skills/python-backend/SKILL.md
$ npx degit jiatastic/open-python-skills/skills/fastapi-design ~/.claude/skills/python-backendClaude Code (project)에 python-backend skill 설치
.claude/skills/python-backend/SKILL.md
$ npx degit jiatastic/open-python-skills/skills/fastapi-design .claude/skills/python-backendCodex에 python-backend skill 설치
~/.agents/skills/python-backend/SKILL.md
$ npx degit jiatastic/open-python-skills/skills/fastapi-design ~/.agents/skills/python-backendGemini CLI에 python-backend skill 설치
~/.gemini/skills/python-backend/SKILL.md
$ npx degit jiatastic/open-python-skills/skills/fastapi-design ~/.gemini/skills/python-backendClaude.ai에 python-backend skill 설치
npx degit jiatastic/open-python-skills/skills/fastapi-design python-backend && zip -r python-backend.zip python-backend # claude.ai → Customize → Skills → + → Create skill → Upload a skill → python-backend.zip
SKILL.md
GitHub에서 보기python-backend
Production-ready Python backend patterns for FastAPI, SQLAlchemy, and Upstash.
When to Use This Skill
- Building REST APIs with FastAPI
- Implementing JWT/OAuth2 authentication
- Setting up SQLAlchemy async databases
- Integrating Redis/Upstash caching and rate limiting
- Refactoring AI-generated Python code
- Designing API patterns and project structure
Core Principles
- Async-first - Use async/await for I/O operations
- Type everything - Pydantic models for validation
- Dependency injection - Use FastAPI's Depends()
- Fail fast - Validate early, use HTTPException
- Security by default - Never trust user input
Quick Patterns
Project Structure
src/
├── auth/
│ ├── router.py # endpoints
│ ├── schemas.py # pydantic models
│ ├── models.py # db models
│ ├── service.py # business logic
│ └── dependencies.py
├── posts/
│ └── ...
├── config.py
├── database.py
└── main.py
Async Routes
# BAD - blocks event loop
@router.get("/")
async def bad():
time.sleep(10) # Blocking!
# GOOD - runs in threadpool
@router.get("/")
def good():
time.sleep(10) # OK in sync function
# BEST - non-blocking
@router.get("/")
async def best():
await asyncio.sleep(10) # Non-blocking
Pydantic Validation
from pydantic import BaseModel, EmailStr, Field
class UserCreate(BaseModel):
email: EmailStr
username: str = Field(min_length=3, max_length=50, pattern="^[a-zA-Z0-9_]+$")
age: int = Field(ge=18)
Dependency Injection
async def get_current_user(token: str = Depends(oauth2_scheme)) -> User:
payload = decode_token(token)
user = await get_user(payload["sub"])
if not user:
raise HTTPException(401, "User not found")
return user
@router.get("/me")
async def get_me(user: User = Depends(get_current_user)):
return user
SQLAlchemy Async
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
engine = create_async_engine(DATABASE_URL, pool_pre_ping=True)
SessionLocal = async_sessionmaker(engine, expire_on_commit=False)
async def get_session() -> AsyncGenerator[AsyncSession, None]:
async with SessionLocal() as session:
yield session
Redis Caching
from upstash_redis import Redis
redis = Redis.from_env()
@app.get("/data/{id}")
def get_data(id: str):
cached = redis.get(f"data:{id}")
if cached:
return cached
data = fetch_from_db(id)
redis.setex(f"data:{id}", 600, data)
return data
Rate Limiting
from upstash_ratelimit import Ratelimit, SlidingWindow
ratelimit = Ratelimit(
redis=Redis.from_env(),
limiter=SlidingWindow(max_requests=10, window=60),
)
@app.get("/api/resource")
def protected(request: Request):
result = ratelimit.limit(request.client.host)
if not result.allowed:
raise HTTPException(429, "Rate limit exceeded")
return {"data": "..."}
Reference Documents
For detailed patterns, see:
| Document | Content |
|---|---|
references/fastapi_patterns.md |
Project structure, async, Pydantic, dependencies, testing |
references/security_patterns.md |
JWT, OAuth2, password hashing, CORS, API keys |
references/database_patterns.md |
SQLAlchemy async, transactions, eager loading, migrations |
references/upstash_patterns.md |
Redis, rate limiting, QStash background jobs |
Resources
이 스킬의 파일
5python-backend skill 질문
Claude Code에 python-backend skill을 어떻게 설치하나요?
npx degit jiatastic/open-python-skills/skills/fastapi-design ~/.claude/skills/python-backend를 실행합니다. Claude Code는 ~/.claude/skills(모든 프로젝트) 또는 .claude/skills(한 프로젝트)에서 skills를 로드하며, 설명이 작업과 일치할 때 skill을 사용합니다.
python-backend skill을 사용할 수 있는 클라이언트는 무엇인가요?
Agent Skills 형식을 읽는 모든 클라이언트(Claude Code, Codex, Gemini CLI, claude.ai(ZIP으로 업로드))가 사용할 수 있습니다. skill 내 스크립트는 클라이언트가 코드 실행을 허용하는 경우에만 실행됩니다.
How should I handle I/O operations in FastAPI to ensure performance?
You should use an async-first approach with async/await for I/O operations to prevent blocking the event loop.
What are the core principles for backend development with this skill?
The core principles include using async-first I/O, strict typing with Pydantic, dependency injection via FastAPI's Depends(), failing fast with HTTPExceptions, and maintaining security by default.
Can this skill help with refactoring AI-generated code?
Yes, the skill includes expertise in refactoring AI-generated Python code, a process referred to as deslopification.