mcpField
A
api-filtering-sorting

api-filtering-sorting

github.com/aj-geddes開発373447 回インストール34 週間前に更新
リポジトリ

api-filtering-sorting について

柔軟な API のフィルタリングとソートを構築するスキルです。クエリの検証、セキュリティ、性能に関するガイダンスを提供し、検索画面や複雑な検索要件を持つデータ取得エンドポイントの開発に適しています。

主な機能

  1. 01柔軟なフィルタリングとソート
  2. 02クエリパラメーターの解析
  3. 03入力検証とフィールドの許可リスト
  4. 04SQLAlchemy と Elasticsearch のガイド
  5. 05クエリ性能の実践指針

活用シーン

  1. 01API エンドポイントにフィルターとソートを追加
  2. 02高度なクエリを備えた検索画面の構築
  3. 03ユーザー指定のクエリパラメーターの検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill api-filtering-sorting

インストール後、Claude Code で/api-filtering-sortingを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
advanced-filter-parser.md
elasticsearch-filtering.md
filter-builder-pattern.md
python-filtering-sqlalchemy.md
query-parameter-filtering.md
query-validation.md
scripts/
validate-schema.sh
templates/
migration-template.sql

詳細

API のフィルタリングとソート

目次

概要

適切な検証、セキュリティ、パフォーマンス最適化を備え、複雑なクエリを効率的に処理できる柔軟なフィルタリングおよびソートシステムを構築します。

使用する場面

  • 検索およびフィルターのインターフェースを構築する場合
  • 高度なクエリ機能を実装する場合
  • 柔軟なデータ取得エンドポイントを作成する場合
  • クエリのパフォーマンスを最適化する場合
  • クエリ用のユーザー入力を検証する場合
  • 複雑なフィルタリングロジックをサポートする場合

クイックスタート

最小限の動作例:

// Node.js filtering implementation
app.get("/api/products", async (req, res) => {
  const filters = {};
  const sortOptions = {};

  // Parse filtering parameters
  const allowedFilters = [
    "category",
    "minPrice",
    "maxPrice",
    "inStock",
    "rating",
  ];
  for (const key of allowedFilters) {
    if (req.query[key]) {
      filters[key] = req.query[key];
    }
  }

  // Build MongoDB query
  const mongoQuery = {};

  if (filters.category) {
    mongoQuery.category = filters.category;
  }
// ... (see reference guides for full implementation)

リファレンスガイド

詳細な実装は references/ ディレクトリを参照してください。

ガイド内容
クエリパラメーターによるフィルタリングクエリパラメーターによるフィルタリング
高度なフィルターパーサー高度なフィルターパーサー
フィルタービルダーパターンフィルタービルダーパターン
Python のフィルタリング(SQLAlchemy)Python のフィルタリング(SQLAlchemy)
Elasticsearch のフィルタリングElasticsearch のフィルタリング
クエリの検証クエリの検証

ベストプラクティス

✅ 推奨事項
  • 使用可能なフィルターフィールドをホワイトリストに登録する
  • すべての入力パラメーターを検証する
  • フィルタリングに使用するフィールドにインデックスを付ける
  • 一般的な演算子をサポートする
  • ファセットナビゲーションを提供する
  • フィルターの選択肢をキャッシュする
  • フィルターの複雑さを制限する
  • フィルター構文を文書化する
  • データベースネイティブの演算子を使用する
  • インデックスを使ってクエリを最適化する
❌ 禁止事項
  • 任意のフィールドによるフィルタリングを許可する
  • 演算子を無制限にサポートする
  • SQL インジェクションのリスクを無視する
  • 複雑なフィルターロジックを作成する
  • 内部フィールド名を公開する
  • インデックスのないフィールドを使ってフィルタリングする
  • 深くネストされたフィルターを許可する
  • 入力検証を省略する
  • すべてのフィルターを OR で結合する
  • パフォーマンスへの影響を無視する

コメント