ObjectStackObjectStack

Query Adapter

Query Adapter protocol schemas

API Query DSL Adapter Protocol

Defines mapping rules between the internal unified query DSL

(defined in data/query.zod.ts) and external API protocol formats:

REST, GraphQL, and OData.

This enables ObjectStack to expose a single internal query representation

while supporting multiple API standards for external consumers.

@see data/query.zod.ts - Unified internal query DSL

@see api/rest-server.zod.ts - REST API configuration

@see api/graphql.zod.ts - GraphQL API configuration

@see api/odata.zod.ts - OData API configuration

Source: packages/spec/src/api/query-adapter.zod.ts

TypeScript Usage

import { GraphQLQueryAdapter, ODataQueryAdapter, OperatorMapping, QueryAdapterConfig, QueryAdapterTarget, RestQueryAdapter } from '@objectstack/spec/api';
import type { GraphQLQueryAdapter, ODataQueryAdapter, OperatorMapping, QueryAdapterConfig, QueryAdapterTarget, RestQueryAdapter } from '@objectstack/spec/api';

// Validate data
const result = GraphQLQueryAdapter.parse(data);

GraphQLQueryAdapter

Properties

PropertyTypeRequiredDescription
filterArgNamestringGraphQL filter argument name
filterStyleEnum<'nested' | 'flat' | 'array'>GraphQL filter nesting style
paginationObjectoptionalPagination argument name mappings
sortingObjectoptionalSort argument mapping

ODataQueryAdapter

Properties

PropertyTypeRequiredDescription
versionEnum<'v2' | 'v4'>OData version
usePrefixbooleanUse $ prefix for system query options ($filter vs filter)
stringFunctionsEnum<'contains' | 'startswith' | 'endswith' | 'tolower' | 'toupper' | 'trim' | 'concat' | 'substring' | 'length'>[]optionalSupported OData string functions
expandObjectoptional$expand configuration

OperatorMapping

Properties

PropertyTypeRequiredDescription
operatorstringUnified DSL operator
reststringoptionalREST query parameter template
graphqlstringoptionalGraphQL where clause template
odatastringoptionalOData $filter expression template

QueryAdapterConfig

Properties

PropertyTypeRequiredDescription
operatorMappingsObject[]optionalCustom operator mappings
restObjectoptionalREST query adapter configuration
graphqlObjectoptionalGraphQL query adapter configuration
odataObjectoptionalOData query adapter configuration

QueryAdapterTarget

Allowed Values

  • rest
  • graphql
  • odata

RestQueryAdapter

Properties

PropertyTypeRequiredDescription
filterStyleEnum<'bracket' | 'dot' | 'flat' | 'rsql'>REST filter parameter encoding style
paginationObjectoptionalPagination parameter name mappings
sortingObjectoptionalSort parameter mapping
fieldsParamstringField selection parameter name

On this page