secondsky avatar

Api Filtering Sorting

Handles the common pattern of turning URL query parameters into database filters and sorts, with built-in security through field whitelisting. The implementation shows MongoDB-style operators (gte, lte, in, like) parsed from bracket syntax like price[gte]=100, plus multi-field sorting with direction indicators. Worth noting it includes type coercion for booleans and numbers, which saves you from string comparison bugs. The security model is straightforward: explicitly allow which fields can be filtered or sorted, then validate everything else. If you're building any kind of search or list endpoint, this gives you a solid starting point that's more thought-through than what you'd probably write in fifteen minutes.

skills.sh installs
432
GitHub stars
248
last updated
Aug 21, 2026

Install

$ npx -y skills add secondsky/claude-skills --skill api-filtering-sorting --agent claude-code

Installs into .claude/skills of the current project.

Files

API Filtering & Sorting

Build flexible filtering and sorting systems that handle complex queries efficiently.

Query Parameter Syntax

GET /products?category=electronics&price[gte]=100&price[lte]=500&sort=-price,name

Implementation (Node.js)

const allowedFilters = ['category', 'status', 'price', 'createdAt'];
const allowedSorts = ['name', 'price', 'createdAt'];

app.get('/products', async (req, res) => {
  const filter = {};
  const sort = {};

  // Parse filters
  for (const [key, value] of Object.entries(req.query)) {
    if (key === 'sort') continue;

    const match = key.match(/^(\w+)\[(\w+)\]$/);
    if (match) {
      const [, field, operator] = match;
      if (!allowedFilters.includes(field)) continue;
      filter[field] = { [`$${operator}`]: parseValue(value) };
    } else if (allowedFilters.includes(key)) {
      filter[key] = value;
    }
  }

  // Parse sort
  if (req.query.sort) {
    for (const field of req.query.sort.split(',')) {
      const direction = field.startsWith('-') ? -1 : 1;
      const name = field.replace(/^-/, '');
      if (allowedSorts.includes(name)) sort[name] = direction;
    }
  }

Sponsors

Details

Repository
github.com/secondsky/claude-skills
Categories
Backend & APIs, Security
First seen
Jun 3, 2026

More from secondsky/claude-skills

All 146
1onewave-ai avatardatabase-schema-designeronewave-ai/claude-skillsDesign optimized database schemas for SQL and NoSQL databases including tables, relationships, indexes, and constraints. Creates ERD diagrams, migration scripts426skills.sh installs
2vercel avatarai-gatewayvercel/vercel-pluginai gateway423skills.sh installs
3sickn33 avatarcc-skill-backend-patternssickn33/antigravity-awesome-skillscc skill backend patterns421skills.sh installs
4sickn33 avatardatabase-migrations-sql-migrationssickn33/antigravity-awesome-skillsdatabase migrations sql migrations408skills.sh installs
5insforge avatarinsforge-backend-advisorinsforge/agent-skillsinsforge backend advisor400skills.sh installs
6sickn33 avatarnodejs-backend-patternssickn33/antigravity-awesome-skillsnodejs backend patterns396skills.sh installs