Skip to content
Agentmart
Submit a tool

fastapi-backend

FastAPI patterns for tickets-tool backend.

Skill by tickets-tool

IndexedMIT
Write a review

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tomicassanelli-fastapi-backend

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

FastAPI patterns for tickets-tool backend. Trigger: Working on backend/ API routes, models, services, and utilities.

Use cases: backend

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/fastapi-backend

Tools it pre-approves 7

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Read,
  • Edit,
  • Write,
  • Glob,
  • Grep,
  • Bash,
  • Task

What's inside

Skill name
fastapi-backend
Description
FastAPI patterns for tickets-tool backend. Trigger: Working on backend/ API routes, models, services, and utilities.
License
MIT
Allowed tools
Read,, Edit,, Write,, Glob,, Grep,, Bash,, Task
Metadata
author: tickets-tool · version: 1.0
Instructions
142 lines in SKILL.md · view on GitHub

Before installing

  • Pre-approves some shell commands

Files (1)

  • SKILL.md

SKILL.md (first lines)

## When to Apply

Use this skill when:
- Creating or modifying FastAPI routes
- Defining Pydantic request/response models
- Adding business logic or AI integration services
- Working with the Groq client or external providers

---

## Critical Rules

### 1. Thin Routes, Thick Services

```python
# ✅ Route delegates to service
@router.post("/api/analyze")
async def analyze_request(req: UserRequest):
    ai_json = call_ai_and_parse(req.raw_text, MODEL_NAME)
    # ... parse and return

# ❌ Route contains business logic
@router.post("/api/analyze")
async def analyze_request(req: UserRequest):
    client = get_ai_client()
    response = client.chat.completions.create(...)
    # ... complex logic in route
```

### 2. Explicit Response Models

```python
# ✅ Always define response_model
@router.post("/api/analyze", response_model=TicketResponse)
async def analyze_request(req: UserRequest):
    ...

# ✅ Union for alternative flows
@router.post("/api/analyze", response_model=Union[TicketResponse, ClarifyResponse])
async def analyze_request(req: UserRequest):
    ...
```

### 3. Pydantic Models in Dedicated File

```python
# app/models.py
class TicketMetadata(BaseModel):
    titulo: str = Field(..., description="Short and clear title")
    tipo: str = Field(..., description="Must be 'Bug', 'Feature' or 'Task'")

class TicketResponse(BaseModel):
    metadata: TicketMetadata
    markdown: str
```

### 4. Proper Error Handling

```python
# ✅ Log and raise generic error
except Exception as e:
    logger.exception("Unexpected error in analyze_request")
    raise HTTPException(status_code=500, detail="Internal server error")

# ✅ Re-raise HTTP exceptions
except HTTPException:
    raise
```

---

## Decision Tree

```text
Adding new endpoint?      -> Add to routes.py, create models in models.py
Business logic/AI call?    -> Create service in services/ticket_service.py
Shared utilities?         -> Add to utils.py
Need validation?          -> Use Pydantic Field(...) with description
```

---

## Project Structure

```
backend/
├── main.py              # App entry point
└── app/
    ├── routes.py        # Route handlers (thin)
    ├── models.py        # Pydantic models
    ├── utils.py         # Shared utilities
    └── services/
        └── ticket_service.py  # Business logic
```

---

## Service Pattern

```python
def call_ai_and_parse(raw_text: str, model_name: str) -> dict:
    """Service function that wraps external provider."""
    client = get_ai_client()
    try:
        response = client.chat.completions.create(...)
    except Exception as e:
        logger.exception("Provider call failed")
        raise

    try:
        return json.loads(response.choices[0].message.content)
    except json.JSONDecodeError:
        logger.exception("Invalid JSON from provider")
        raise
```

---

## Commands

From TomiCassanelli/tickets-tool, MIT.

Signals

Stars
0
Forks
0
Open issues
2
Last commit (this folder)
Mar 23, 2026 (7 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tickets-tool

Cite this page

fastapi-backend skill. Agent Mart. https://agentmart.dev/skills/tomicassanelli-fastapi-backend (last updated 2026-10-24)