원클릭으로
fastapi-todo-rest-api
todo rest endpoint, /api/tasks crud, fastapi todo api route, patch /complete endpoint, todo specific rest api
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
todo rest endpoint, /api/tasks crud, fastapi todo api route, patch /complete endpoint, todo specific rest api
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Generate Helm 3+ chart structure for todo/task applications. Use for: creating Chart.yaml, values.yaml, and templates/ directory with Deployment and Service manifests. Triggers: "helm chart", "helm template", "helm values", "create helm chart", "helm install", "helm upgrade", "package as helm chart". NOT for: plain Kubernetes YAML (use kubernetes-yaml-best-practices), Kustomize, or kubectl commands. NOT for: CRDs, hooks, subcharts, or advanced Helm features unless explicitly requested.
Apply Kubernetes pod security hardening with securityContext, Pod Security Standards, and container isolation. Use for: adding runAsNonRoot, readOnlyRootFilesystem, dropping capabilities, seccomp profiles, and privilege escalation prevention. Triggers: "secure pod", "pod security", "non-root container", "security context", "k8s security", "harden deployment", "pod security standards", "restricted PSS". NOT for: NetworkPolicies, RBAC, Secrets management, or service mesh security. Use alongside kubernetes-yaml-best-practices for complete manifests.
Generate production-ready Kubernetes YAML manifests following best practices. Use when creating or reviewing: Deployments, Services, ConfigMaps, Secrets, Ingress, PersistentVolumeClaims, or any k8s resource YAML. Triggers: "kubernetes manifest", "deployment yaml", "service yaml", "write k8s resource", "create kubernetes", "k8s yaml", "pod spec", "container spec". NOT for Helm charts, Kustomize overlays, or kubectl commands.
Deploy and test applications on local Minikube Kubernetes cluster. Use for: loading local Docker images to Minikube, exposing services locally via port-forward or minikube service, debugging pods (logs, describe, exec), troubleshooting CrashLoopBackOff/ImagePullBackOff errors. Triggers: "deploy to minikube", "minikube image load", "port-forward", "minikube service", "debug pod", "why is pod crashing", "minikube dashboard", "local kubernetes testing". NOT for: minikube installation, minikube start/stop, cloud Kubernetes, Helm charts, or writing YAML manifests (use kubernetes-yaml-best-practices for YAML).
OCI & OKE specialist for the Todo app hackathon project. Provides infrastructure context, authentication patterns, and deployment guidance for Oracle Kubernetes Engine in me-dubai-1. Use when working with: OKE cluster operations, kubectl commands, oci CLI, Helm deploys to OKE, Dapr/Kafka on OKE, Ingress/LoadBalancer setup, Kubernetes secrets, cloud deployment, OCI networking, node pool management, or troubleshooting OKE auth errors. Triggers: "OKE", "oci", "kubectl", "deploy to cloud", "cluster", "OCI", "oracle kubernetes", "ingress on OKE", "secrets on OKE", "Dapr on OKE", "Kafka on OKE", "node pool", "DOKS alternative".
Dapr service invocation pattern for FastAPI Todo app. Use DaprClient.invoke_method to call other services with user_id propagated via metadata. Use when implementing service-to-service communication in FastAPI applications with user context propagation.
| name | fastapi-todo-rest-api |
| description | todo rest endpoint, /api/tasks crud, fastapi todo api route, patch /complete endpoint, todo specific rest api |
This skill provides standardized REST API endpoints for Todo applications using FastAPI. It enforces proper user isolation, correct HTTP methods, status codes, and follows the exact endpoint patterns required for Todo task management.
Always use these exact endpoint patterns for Todo app:
/api/tasks → list current user's tasks (with optional ?status= & ?sort=)/api/tasks → create new task (body: title + description)/api/tasks/{task_id} → get single task (check ownership)/api/tasks/{task_id} → full update/api/tasks/{task_id}/complete → toggle completed status/api/tasks/{task_id} → delete taskUse APIRouter with the correct prefix:
from fastapi import APIRouter
router = APIRouter(prefix="/api/tasks")
from fastapi import APIRouter, Depends, Query
from typing import List, Optional
from your_models import TaskRead
from your_auth import get_current_user, CurrentUser
router = APIRouter(prefix="/api/tasks")
@router.get("", response_model=List[TaskRead])
async def list_tasks(
current_user: CurrentUser = Depends(get_current_user),
status: Optional[str] = Query(None, description="Filter by status: pending, completed, all"),
sort: Optional[str] = Query("created", description="Sort by: created, title, due_date")
):
# Implementation here - filter by current_user.id
pass
from fastapi import status
@router.post("", response_model=TaskRead, status_code=status.HTTP_201_CREATED)
async def create_task(
task_create: TaskCreate,
current_user: CurrentUser = Depends(get_current_user)
):
# Implementation here - assign current_user.id to user_id
pass
@router.get("/{task_id}", response_model=TaskRead)
async def get_task(
task_id: int,
current_user: CurrentUser = Depends(get_current_user)
):
# Implementation here - verify task belongs to current_user
pass
@router.put("/{task_id}", response_model=TaskRead)
async def update_task(
task_id: int,
task_update: TaskUpdate,
current_user: CurrentUser = Depends(get_current_user)
):
# Implementation here - verify task belongs to current_user
pass
@router.patch("/{task_id}/complete", response_model=TaskRead)
async def toggle_task_completion(
task_id: int,
current_user: CurrentUser = Depends(get_current_user)
):
# Implementation here - verify task belongs to current_user and toggle completion
pass
from fastapi import status
@router.delete("/{task_id}", status_code=status.HTTP_204_NO_CONTENT)
async def delete_task(
task_id: int,
current_user: CurrentUser = Depends(get_current_user)
):
# Implementation here - verify task belongs to current_user and delete
pass
Always depend on current_user from JWT dependency:
from your_auth import get_current_user, CurrentUser
# Use in every endpoint:
current_user: CurrentUser = Depends(get_current_user)
Always return Pydantic response models:
from pydantic import BaseModel
from datetime import datetime
from typing import Optional
class TaskBase(BaseModel):
title: str
description: Optional[str] = None
completed: bool = False
class TaskCreate(TaskBase):
pass
class TaskUpdate(TaskBase):
pass
class TaskRead(TaskBase):
id: int
user_id: str
created_at: datetime
updated_at: datetime
class Config:
from_attributes = True
⚠️ Critical: Never expose other users' data. Always verify that requested task belongs to current_user before performing operations.
Example verification pattern:
task = session.exec(
select(Task)
.where(Task.id == task_id)
.where(Task.user_id == current_user.id)
).first()
if not task:
raise HTTPException(status_code=404, detail="Task not found")
Before implementing any Todo API endpoint: