開発
#api
fastapi-templates
Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.
DeepseekModel
キュレーション済みスキル
品質 優秀 · 90
v1.0.0
取得
https://deepseekmodel.com/api/download.php?id=wshobson-agents-plugins-api-scaffolding-skills-fastapi-templates-skill-md&format=skill
ダウンロード .skill
標準形式。system_prompt と model_config を収録し、任意の Agent で利用可能
.skill ファイルの system_prompt フィールドの実際の内容。
name fastapi-templates description Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects. FastAPI Project Templates Production-ready FastAPI project structures with async patterns, dependency injection, middleware, and best practices for building high-performance APIs. When to Use This Skill Starting new FastAPI projects from scratch Implementing async REST APIs with Python Building high-performance web services and microservices Creating async applications with PostgreSQL, MongoDB Setting up API projects with proper structure and testing Core Concepts 1. Project Structure Recommended Layout: app/ ├── api/ # API routes │ ├── v1/ │ │ ├── endpoints/ │ │ │ ├── users.py │ │ │ ├── auth.py │ │ │ └── items.py │ │ └── router.py │ └── dependencies.py # Shared dependencies ├── core/ # Core configuration │ ├── config.py │ ├── security.py │ └── database.py ├── models/ # Database models │ ├── user.py │ └── item.py ├── schemas/ # Pydantic schemas │ ├── user.py │ └── item.py ├── services/ # Business logic │ ├── user_service.py │ └── auth_service.py ├── repositories/ # Data access │ ├── user_repository.py │ └── item_repository.py └── main.py # Application entry 2. Dependency Injection FastAPI's built-in DI system using Depends : Database session management Authentication/authorization Shared business logic Configuration injection 3. Async Patterns Proper async/await usage: Async route handlers Async database operations Async background tasks Async middleware Detailed worked examples and patterns Detailed sections (starting with ## Implementation Patterns ) live in references/details.md . Read that file when the navigation summary above is insufficient. Testing # tests/conftest.py import pytest import asyncio from httpx import AsyncClient from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession from sqlalchemy.orm import sessionmaker from app.main import app from app.core.database import get_db, Base TEST_DATABASE_URL = "sqlite+aiosqlite:///:memory:" @pytest.fixture( scope= "session" ) def event_loop (): loop = asyncio.get_event_loop_policy().new_event_loop() yield loop loop.close() @pytest.fixture async def db_session (): engine = create_async_engine(TEST_DATABASE_URL, echo= True ) async with engine.begin() as conn: await conn.run_sync(Base.metadata.create_all) AsyncSessionLocal = sessionmaker( engine, class_=AsyncSession, expire_on_commit= False ) async with AsyncSessionLocal() as session: yield session @pytest.fixture async def client ( db_session ): async def override_get_db (): yield db_session app.dependency_overrides[get_db] = override_get_db async with AsyncClient(app=app, base_url= "http://test" ) as client: yield client # tests/test_users.py import pytest @pytest.mark.asyncio async def test_create_user ( client ): response = await client.post( "/api/v1/users/" , json={ "email" : "test@example.com" , "password" : "testpass123" , "name" : "Test User" } ) assert response.status_code == 201 data = response.json() assert data[ "email" ] == "test@example.com" assert "id" in data
このスキルを起動するキーワード。クリックでコピーできます。
このスキルにはトリガーワードがありません。
ダウンロードした .skill に含まれるフィールド。
| フィールド | 説明 |
|---|---|
| format | フォーマット識別子(skill/v1) |
| skill_id | スキル固有 ID |
| name | スキル名 |
| version | バージョン |
| description | 説明 |
| category | カテゴリ(配列) |
| trigger_words | トリガーワード |
| tags | タグ |
| source | ソース |
| source_url | ソース URL(本ページ) |
| exported_at | エクスポート日時(ダウンロード毎) |
| system_prompt | システムプロンプト本文 |
| model_config | モデル設定:provider / model / temperature / max_tokens / top_p |
| examples | サンプル |
| install_guide | 各プラットフォームの導入説明(Coze / Dify / Claude / カスタム) |