Drivers/Capability matrix
Capability matrix
Not every backend can express every query. Each request strategy declares what it supports, and the builder throws rather than emitting a URI the server would silently ignore.
This table is read from the shipped capabilities flags, so it is always what the code does.
| Driver | Filters | Operators | Sort | Select | Fields | Includes | Search | Embedded |
|---|---|---|---|---|---|---|---|---|
| API Platform | ✅ | ✅ | ✅ | — | — | — | — | — |
| Directus | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ | ✅ |
| Django REST Framework | ✅ | ✅ | ✅ | — | — | — | ✅ | — |
| FeathersJS | ✅ | ✅ | ✅ | ✅ | — | — | — | — |
| JSON:API | ✅ | — | ✅ | — | ✅ | ✅ | — | — |
| json-server | ✅ | ✅ | ✅ | — | — | — | ✅ | — |
| Laravel | — | — | — | — | — | — | — | — |
| nestjs-paginate | ✅ | ✅ | ✅ | ✅ | — | — | ✅ | — |
| @nestjsx/crud | ✅ | ✅ | ✅ | ✅ | — | ✅ | — | — |
| OData v4 | ✅ | ✅ | ✅ | ✅ | — | ✅ | ✅ | ✅ |
| Payload CMS | ✅ | ✅ | ✅ | ✅ | — | — | — | — |
| PocketBase | ✅ | ✅ | ✅ | ✅ | — | ✅ | — | — |
| PostgREST | ✅ | ✅ | ✅ | ✅ | — | — | — | ✅ |
| Sieve | ✅ | ✅ | ✅ | — | — | — | — | — |
| spatie/laravel-query-builder | ✅ | — | ✅ | — | ✅ | ✅ | — | — |
| Spring Data REST | — | — | ✅ | — | — | — | — | — |
| Strapi | ✅ | ✅ | ✅ | ✅ | — | ✅ | — | — |
| WordPress REST API | ✅ | — | ✅ | ✅ | — | ✅ | ✅ | — |
| Supported by | 16/18 | 13/18 | 17/18 | 10/18 | 2/18 | 8/18 | 6/18 | 3/18 |
What each column means
Section titled “What each column means”| Capability | Method | Meaning |
|---|---|---|
| Filters | addFilter() |
capabilities.filters |
| Operators | addFilterOperator() |
capabilities.operatorFilters |
| Sort | addSort() |
capabilities.sort |
| Select | addSelect() |
capabilities.select |
| Fields | addFields() |
capabilities.fields |
| Includes | addIncludes() |
capabilities.includes |
| Search | setSearch() |
capabilities.search |
| Embedded | addEmbedded() |
capabilities.embedded |
