nubitio / api-platform
API Platform bridge for the Nubit admin stack: data-grid filter (sort/filter/searchValue), translated OpenAPI docs with x-crud hints for @nubitio/hydra, pagination headers, and entity traits.
v1.0.1
2026-08-27 17:49 UTC
Requires
- php: >=8.3
- api-platform/core: ^4.3.12
- doctrine/orm: ^3.0
- doctrine/persistence: ^4.0
- nubitio/platform: ^1.0
- psr/log: ^3.0
- symfony/dependency-injection: ^7.4 || ^8.0
- symfony/event-dispatcher: ^7.4 || ^8.0
- symfony/framework-bundle: ^7.4 || ^8.0
- symfony/http-foundation: ^7.4 || ^8.0
- symfony/http-kernel: ^7.4 || ^8.0
- symfony/serializer: ^7.4 || ^8.0
- symfony/translation-contracts: ^3.0
Requires (Dev)
- phpunit/phpunit: ^11.5 || ^12.0
- symfony/translation: ^7.4 || ^8.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main
- v1.0.1
- v1.0.0
- v1.0.0-rc.1
- v0.15.2
- v0.15.1
- v0.15.0
- v0.14.0
- v0.13.2
- v0.13.1
- v0.13.0
- v0.12.4
- v0.12.3
- v0.12.2
- v0.12.1
- v0.12.0
- v0.11.3
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.13
- v0.10.12
- v0.10.11
- v0.10.10
- v0.10.9
- v0.10.8
- v0.10.7
- v0.10.6
- v0.10.5
- v0.10.4
- v0.10.3
- v0.10.2
- v0.10.1
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.1
- v0.7.0
- v0.6.4
- v0.6.3
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.1
- v0.1.0
This package is auto-updated.
Last update: 2026-09-11 17:13:30 UTC
README
API Platform bridge for the Nubit admin stack: everything a Symfony backend needs so @nubitio/react-admin can auto-generate CRUD screens from your API docs.
composer require nubitio/api-platform
What's inside
DataGridFilter— implements the grid query contract (sort,filter,searchValue) that@nubitio/coreserializes. Add#[ApiFilter(DataGridFilter::class)]to a resource and the React datagrid's filtering/sorting/search work end to end.GridVirtualFieldInterface— extension point for computed/joined fields with no ORM mapping. Tag implementations withnubit.api_platform.grid_virtual_field;GridFilterHelperprovides the operator/parameter utilities.TranslatedDocumentationNormalizer— translatesApiPropertydescription i18n keys into the Hydra/OpenAPI docs and forwardsx-crudhints that@nubitio/hydraturns into field definitions.ApiResponseListener— addsX-Total-Count,X-Total-Pages,X-Current-Pageheaders to collection responses.ExceptionListener— mapsNubit\Platform\Exception\*to consistent JSON error responses (422 with violations forValidationException, etc.).BaseController— thinAbstractControllerwith theApiResponseenvelope helpers.- Entity traits —
TimestampableTrait,SoftDeletableTrait.
Service registration
Until the admin bundle ships, register the services in your config/services.yaml
(the listeners carry #[AsEventListener], they just need to exist as services):
services: # Gets the api_platform.filter tag via autoconfiguration; required for # resources declaring filters: [DataGridFilter::class] Nubit\ApiPlatform\Doctrine\Filter\DataGridFilter: ~ Nubit\ApiPlatform\OpenApi\TranslatedDocumentationNormalizer: decorates: api_platform.hydra.normalizer.documentation arguments: $inner: '@.inner' $translator: '@translator' $requestStack: '@request_stack' $apiLocale: '%env(APP_API_LOCALE)%' Nubit\ApiPlatform\Http\ApiResponseListener: ~ Nubit\ApiPlatform\Http\ExceptionListener: ~ # Your virtual grid fields, if any App\Grid\MyVirtualFields: tags: ['nubit.api_platform.grid_virtual_field']
License
MIT