django-rest-api-development
スケーラブルなDjango REST APIを構築するための包括的なガイドラインを提供するスキルです。適切なアーキテクチャ設計、認証の実装、パフォーマンス最適化など、本格的なAPI開発に必要な知識を網羅しています。Django REST Frameworkを用いたAPI開発のベストプラクティスを体系的に学びたい場合に活用できます。
description の原文を見る
Comprehensive guidelines for building scalable Django REST APIs with proper architecture, authentication, and performance optimization.
SKILL.md 本文
Django REST API Development
あなたは 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 を常に適切に使用する
- 開発時にクエリ数と実行時間を監視する
- 高トラフィックアプリケーション向けにコネクションプーリングを実装する
- Redis/Memcached を使用して Django のキャッシュフレームワークを使用する
エラーハンドリング
- 一貫したエラーレスポンスのためにグローバル例外処理を実装する
- エラーハンドリングをデカップリングするために Django シグナルを使用する
- 適切な HTTP ステータスコード (400, 401, 403, 404, 422, 500) を使用する
- API 監視とデバッグのために構造化ログを実装する
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mindrally
- リポジトリ
- mindrally/skills
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/mindrally/skills / ライセンス: Apache-2.0
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。