This project is not covered by Drupal’s security advisory policy.

Drupal JSON:API Params

Helper libraries for building Drupal JSON:API query parameters in multiple ecosystems.

These libraries help construct JSON:API query parameters for:

  • Filtering
  • Sorting
  • Sparse fieldsets
  • Includes
  • Pagination
  • Nested filter groups

The goal is to provide a consistent developer experience across multiple programming languages when working with Drupal JSON:API endpoints.


Available Implementations

JavaScript / TypeScript

Python / FastAPI


Project Structure

This Drupal.org project acts as an umbrella project for the
drupal-jsonapi-params ecosystem.

  • Development happens in the language-specific GitHub repositories.
  • Package publishing is handled through the respective ecosystems (npm and PyPI).
  • Drupal.org is primarily used for discoverability, issue credits, and Drupal ecosystem visibility.

Installation

JavaScript / TypeScript

$ npm install drupal-jsonapi-params

Python

$ pip install drupal-jsonapi-params

JavaScript / TypeScript Usage Example

import { DrupalJsonApiParams } from 'drupal-jsonapi-params';
const apiParams = new DrupalJsonApiParams();
apiParams
  .addGroup('publish_status', 'OR', 'parent_group')
  .addGroup('parent_group', 'AND')
  .addFilter('status', '1')
  .addFilter('status', '2', '!=', 'publish_status')
  .addPageLimit(5)
  .addFields('node--article', [
    'field_a.id',
    'field_b.uid',
    'field_c.tid'
  ])
  .addInclude([
    'field_a.id',
    'field_b.uid',
    'field_c.tid'
  ])
  .addSort('id', 'DESC');
const queryString = apiParams.getQueryString();

Supported Features

  • Filter generation
  • Nested filter groups
  • Sorting
  • Pagination helpers
  • Sparse fieldsets
  • Relationship includes
  • Query object serialization
  • Query string parsing and reconstruction

API Documentation

See the language-specific repositories for complete API documentation and examples:


Drupal JSON:API Documentation


Issue Tracking

For implementation-specific bugs and feature requests, please use the corresponding GitHub repository:

  • JavaScript / TypeScript issues → GitHub
  • Python issues → GitHub

Drupal.org issues may still be used for:

  • Drupal contribution credit attribution
  • Cross-project discussions
  • Umbrella project coordination
Supporting organizations: 
Development

Project information

Releases