スキル api-route-design
🔗

api-route-design

安全

RESTful APIs in FastAPI entwerfen

Das Entwerfen von API-Endpunkten erfordert ein Verständnis von HTTP-Methoden, Validierungsmustern und Antwortstandards. Diese Skill bietet fachkundige Anleitung zum Erstellen robuster RESTful APIs in FastAPI mit ordnungsgemäßer Anforderungsvalidierung, Paginierung und konsistenten Antwortformaten.

対応: Claude Codex Code(CC)
📊 71 十分
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「api-route-design」を使用しています。 Erstelle einen GET-Endpunkt für /users/ mit Paginierung

期待される結果:

  • @router.get("/users/", response_model=PaginatedResponse[UserOut])
  • async def list_users(
  • skip: int = Query(0, ge=0),
  • limit: int = Query(100, ge=1, le=1000),
  • ) -> PaginatedResponse[UserOut]:
  • users, total = await get_users(skip=skip, limit=limit)
  • return PaginatedResponse(
  • data=users,
  • total=total,
  • skip=skip,
  • limit=limit,
  • has_more=(skip + limit) < total,
  • )

「api-route-design」を使用しています。 Erstelle einen POST-Endpunkt mit Pydantic-Validierung

期待される結果:

  • class ItemCreate(BaseModel):
  • name: str = Field(..., min_length=1, max_length=100)
  • price: float = Field(..., gt=0)
  • description: str | None = Field(None, max_length=500)
  •  
  • @router.post("/items/", response_model=ItemOut, status_code=201)
  • async def create_item(item_in: ItemCreate) -> ItemOut:
  • return await create_item_db(item_in)

「api-route-design」を使用しています。 Fehlerantwortformat entwerfen

期待される結果:

  • class ErrorResponse(BaseModel):
  • error: str
  • detail: str | None = None
  • code: str | None = None
  •  
  • # Usage in endpoint:
  • raise HTTPException(
  • status_code=status.HTTP_404_NOT_FOUND,
  • detail="Item not found",
  • )

セキュリティ監査

安全
v6 • 1/21/2026

All 84 static findings evaluated as false positives. The skill is a legitimate FastAPI API design reference document containing documentation and a validation script. The scanner incorrectly flagged regex flags (re.MULTILINE, re.DOTALL) as crypto algorithms, markdown code backticks as shell execution, and HTTP status codes as weak crypto. No actual security risks present.

3
スキャンされたファイル
1,153
解析された行数
0
検出結果
6
総監査数
セキュリティ問題は見つかりませんでした
監査者: claude 監査履歴を表示 →

品質スコア

45
アーキテクチャ
100
保守性
87
コンテンツ
20
コミュニティ
100
セキュリティ
91
仕様準拠

作れるもの

Erstellen eines neuen REST-API-Endpunkts

Erstellen Sie einen neuen GET-Endpunkt zum Abrufen paginierter Ressourcen mit Filteroptionen, richtigen Statuscodes und Response-Modellierung.

Validierung der API-Design-Konsistenz

Überprüfen Sie vorhandene Endpunkte, um sicherzustellen, dass sie REST-Konventionen folgen, korrekte Statuscodes verwenden und ordnungsgemäße Request/Response-Schemas enthalten.

FastAPI-Routing-Muster erlernen

Verstehen Sie Standardmuster für die Definition von Routen, Validierung von Eingaben und Strukturierung von Antworten in FastAPI-Projekten.

これらのプロンプトを試す

Einfachen GET-Endpunkt erstellen
Erstelle einen FastAPI GET-Endpunkt unter /users/{user_id}, der Benutzerdetails zurückgibt. Füge Pfadparametervalidierung, 404-Behandlung hinzu, wenn der Benutzer nicht gefunden wird, und ein Antwortmodell für die Benutzerdaten.
Paginierten Listen-Endpunkt erstellen
Entwerfe einen FastAPI GET-Endpunkt unter /items/, der eine paginierte Liste von Items zurückgibt. Füge skip- und limit-Abfrageparameter, Filterung nach Status, Sortierungsoptionen und einen PaginatedResponse-Wrapper mit has_more-Indikator hinzu.
POST mit Validierung implementieren
Erstelle einen POST-Endpunkt unter /products/, der eine Anfrage zur Produkterstellung akzeptiert. Verwende Pydantic-Modelle für die Validierung mit Feldeinschränkungen (z.B. price > 0), gib bei Erfolg den Status 201 zurück und füge Fehlerantwortformatierung hinzu.
CRUD-Operationen entwerfen
Entwerfe einen vollständigen CRUD-Router für eine Ressource namens 'documents', einschließlich: Liste mit Paginierung, Abrufen nach ID, Erstellen mit Validierung, Aktualisieren mit PATCH und Löschen-Endpunkt. Füge richtige Statuscodes hinzu (201 für Erstellen, 204 für Löschen) und Fehlerbehandlung.

ベストプラクティス

  • Verwenden Sie Plural-Substantive für Collection-Endpunkte (/users nicht /user) und kebab-case für mehrteilige Pfade (/student-fees)
  • Geben Sie 201 für POST-Erstellung zurück, 204 für erfolgreiches DELETE ohne Response-Body und 404 für fehlende Ressourcen
  • Verwenden Sie immer response_model-Parameter und umschließen Sie paginierte Antworten mit Metadaten (total, skip, limit, has_more)

回避

  • GET für zustandsändernde Operationen zu verwenden verletzt HTTP-Semantik und Caching-Erwartungen
  • Unterschiedliche Antwortstrukturen für Erfolgs- und Fehlerfälle zurückzugeben verwirrt API-Konsumenten
  • Das Weglassen von response_model entfernt automatische OpenAPI-Dokumentation und Validierungsvorteile

よくある質問

Welchen HTTP-Statuscode sollte ich für eine fehlgeschlagene Validierung verwenden?
Verwenden Sie 422 Unprocessable Entity für Pydantic-Validierungsfehler. Verwenden Sie 400 Bad Request für Geschäftslogik-Validierungsfehler.
Wie behandle ich Authentifizierung in FastAPI-Endpunkten?
Verwenden Sie FastAPI Depends(), um Authentifizierungs-Dependencies zu injizieren. Die Skill integriert sich mit @jwt-auth für geschützte Routen.
Sollte ich PUT oder PATCH für Aktualisierungen verwenden?
Verwenden Sie PUT für vollständigen Ressourcenersatz. Verwenden Sie PATCH für teilweise Aktualisierungen, bei denen sich nur einige Felder ändern.
Was ist der empfohlene Paginierungsansatz?
Verwenden Sie skip/limit mit einem has_more-Boolean-Indikator. Fügen Sie die Gesamtzahl für clientseitige Seitenberechnungen hinzu.
Wie validiere ich Abfrageparameter mit Mustern?
Verwenden Sie Query() mit dem pattern-Parameter für Regex-Validierung, z.B. Query(None, pattern='^(active|inactive)$').
Kann diese Skill bei der Standardisierung der Fehlerbehandlung helfen?
Ja. Definieren Sie ErrorResponse-Modelle und werfen Sie HTTPException mit konsistenten Fehlercodes und Nachrichten über alle Endpunkte hinweg.

開発者の詳細

ファイル構成

📁 scripts/

📄 verify.py

📄 SKILL.md