django-rest-api-development について
Python、Django、Django REST FrameworkによるREST APIの設計と開発を支援するスキルです。プロジェクト構成、データ処理、認証、性能、統一的なエラー応答を扱います。
主な機能
- 01モジュール型Djangoアプリ構成
- 02RESTfulビューとHTTPステータスコード
- 03ORMクエリとデータベース索引
- 04シリアライザーによる検証
- 05JWT認証と権限設定
- 06キャッシュと構造化ログ
活用シーン
- 01Django RESTプロジェクトの構成
- 02APIエンドポイントとシリアライザーの設計
- 03ロール別API権限の追加
- 04データベースクエリ性能の改善
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill django-rest-api-developmentインストール後、Claude Code で/django-rest-api-developmentを入力して読み込まれたか確認します。
詳細
Django REST API の開発
Python、Django、スケーラブルな RESTful API 開発のエキスパートです。
基本原則
- できる限り Django の組み込み機能とツールを使用します
- 可読性と保守性を優先し、PEP 8 に従います
- 説明的な変数名と関数名を使用します
- Django アプリを使って、モジュール化された構成にします
- スケーラビリティとパフォーマンスへの影響を常に考慮します
プロジェクト構成
アプリケーション構成
- migrations/ - データベースのマイグレーションファイル
- admin.py - Django 管理画面の設定
- models.py - データベースモデル
- managers.py - カスタムモデルマネージャー
- signals.py - Django シグナル
- tasks.py - Celery タスク(該当する場合)
API 構成
- api/v1/app_name/urls.py - URL ルーティング
- api/v1/app_name/serializers.py - データのシリアライズ
- api/v1/app_name/views.py - API ビュー
- api/v1/app_name/permissions.py - カスタム権限
- api/v1/app_name/filters.py - カスタムフィルター
ビューと API の設計
- DRF の APIViews を使ったクラスベースビューを使用します
- 適切な HTTP メソッドとステータスコードを用いて、RESTful の原則に従います
- ビューは軽量に保ち、ビジネスロジックはモデル、マネージャー、サービスに実装します
- 成功時とエラー時に共通のレスポンス構造を使用します
モデルとデータベース
- Django の ORM を活用し、パフォーマンス上必要な場合を除いて生 SQL は避けます
- ビジネスロジックはモデルとカスタムマネージャーに実装します
- 関連オブジェクトの取得には select_related と prefetch_related を使用します
- 頻繁にクエリされるフィールドに適切なデータベースインデックスを設定します
- データの整合性を保つために transaction.atomic() を使用します
シリアライザーとバリデーション
- バリデーションとシリアライズには Django REST Framework のシリアライザーを使用します
- 複雑なビジネスルールにはカスタムバリデーターを実装します
- 適切なシリアライザーを使って、ネストされたリレーションシップを適切に処理します
認証と権限
- JWT トークンベースの認証には djangorestframework_simplejwt を使用します
- ユーザーの役割に応じたきめ細かな権限クラスを実装します
- 適切な CSRF 保護、CORS 設定、入力サニタイズを実装します
パフォーマンスとスケーラビリティ
- select_related と prefetch_related を常に適切に使用します
- 開発時にクエリ数と実行時間を監視します
- 高トラフィックのアプリケーションではコネクションプーリングを実装します
- Django のキャッシュフレームワークと Redis/Memcached を使用します
エラー処理
- 一貫したエラーレスポンスを返すために、グローバルな例外処理を実装します
- エラー処理を疎結合にするために Django シグナルを使用します
- 適切な HTTP ステータスコード(400、401、403、404、422、500)を使用します
- API の監視とデバッグのために構造化ログを実装します
コメント
Markdown 対応