mcpField
D
django-rest-api-development

django-rest-api-development

github.com/mindrally開発287873 回インストール3 週間前に更新
リポジトリ

django-rest-api-development について

Python、Django、Django REST FrameworkによるREST APIの設計と開発を支援するスキルです。プロジェクト構成、データ処理、認証、性能、統一的なエラー応答を扱います。

主な機能

  1. 01モジュール型Djangoアプリ構成
  2. 02RESTfulビューとHTTPステータスコード
  3. 03ORMクエリとデータベース索引
  4. 04シリアライザーによる検証
  5. 05JWT認証と権限設定
  6. 06キャッシュと構造化ログ

活用シーン

  1. 01Django RESTプロジェクトの構成
  2. 02APIエンドポイントとシリアライザーの設計
  3. 03ロール別API権限の追加
  4. 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 の監視とデバッグのために構造化ログを実装します

コメント