JSON API (jsonapi.org) client


0.1.53 years ago4 years agoMinified + gzip package size for @limoncello-framework/json-api-client in KB



JSON API client side library.

The library helps to build queries to a JSON API server.

Supported features

It can build queries for reading resource collections, individual resources by identifier and resource relationships.

Usage sample

import { QueryBuilder } from '@limoncello-framework/json-api-client';

const query = (new QueryBuilder('comments'))
        type: 'comments',
        fields: 'text'
        field: 'id',
        operation: 'greater-than',
        parameters: '10'
    .combineFiltersWithAnd() // default and could be omitted
        field: 'title',
        isAscending: false
    .withPagination(50, 25)





$ npm install --save-dev @limoncello-framework/json-api-client


$ yarn add --dev @limoncello-framework/json-api-client


QueryBuilder has the following interface.

interface QueryBuilderInterface {
    onlyFields(...fields: FieldParameterInterface[]): QueryBuilderInterface;

    withFilters(...filters: FilterParameterInterface[]): QueryBuilderInterface;

    combineFiltersWithAnd(): QueryBuilderInterface;

    combineFiltersWithOr(): QueryBuilderInterface;

    withSorts(...sorts: SortParameterInterface[]): QueryBuilderInterface;

    withIncludes(...relationships: RelationshipName[]): QueryBuilderInterface;

    withPagination(offset: number, limit: number): QueryBuilderInterface;

    enableEncodeUri(): QueryBuilderInterface;

    disableEncodeUri(): QueryBuilderInterface;

    read(index: ResourceIdentity, relationship?: RelationshipName): string;

    index(): string;

Methods onlyFields, withFilters, withSorts and withPagination are fully shown in the example above and can accept 1 or more input parameters.

Methods combineFiltersWithAnd / combineFiltersWithOr switch combining filter arguments either with AND (default) / OR clauses.

Methods enableEncodeUri / disableEncodeUri enable and disable encoding query parameters after ? mark in accordance with RFC 3986. By default query parameters will be encoded.

    .onlyFields({ ... }, { ... }, ...)
    .withFilters({ ... }, { ... }, ...)
    .withSorts({ ... }, { ... }, ...)
    .withIncludes('...', '...', ...)

Parameter operation in withFilters method should have one the following values equals, not-equals, less-than, less-or-equals, greater-than, greater-or-equals, like, not-like, in, not-in, is-null or not-null.

Method index returns multiple resource requests such as


and method read returns individual resource requests for resources themselves or their relationships



More usage samples could be found in test folder.


  • Clone the repository.
  • Install dependencies with npm install or yarn install.
  • Run tests with npm run test or yarn test.


Feel free to open an issue marked as 'Question' in its title.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.