一键导入
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: