How power-vending/laravel-api-query-builder works
Laravel JSON Query Builder turns request parameters into Eloquent query constraints and paginated results, and also exposes a schema endpoint describing searchable columns, operators, and relations. The main query path is documented and partly visible in source; individual non-search parameter implementations are represented at their shared directory because their internals were not sampled. The schema generator excerpt is partial, so only its shown schema and database-metadata responsibilities are mapped.
Main entry points: SchemaController.php Schema endpoint · SearchParameter.php Search parameter · QueryBuilderSchema.php Schema generator · ApiQuery.php Request query dispatcher
Components 21
Query execution
- Model query scopes
src/Traits/ApiQueryBuilder.php - Request query dispatcher
src/ApiQuery.php - Request parameter handlers
src/RequestParameters
Search parsing
- Search parameter
src/RequestParameters/SearchParameter.php - Search parsers
src/SearchParser.php - Custom field parser
src/CustomFieldSearchParser.php - Operator callbacks
src/SearchCallbacks - Search value types
src/Types
Schema discovery
- Schema request validation
src/Http/Requests/SchemaRequest.php - Schema endpoint
src/Http/Controllers/SchemaController.php - Schema generator
src/Schema/QueryBuilderSchema.php - Relation name normalization
src/Support/RelationMethodNormalizer.php - Laravel route registration
src/ApiQueryServiceProvider.php - Package schema route
routes/api.php
Configuration
- Operator registry
src/Config/OperatorsConfig.php - Parameter registry
src/Config/RequestParametersConfig.php - Package configuration
config/api-query-builder.php - Model restrictions
src/Config/ModelConfig.php
Other components
- API client
- Eloquent builder
- Application database
Connections 26
- API client → Model query scopes: supplies query
- Model query scopes → Request query dispatcher: dispatches input
- Model query scopes → Eloquent builder: paginates
- Request query dispatcher → Parameter registry: loads handlers
- Parameter registry → Package configuration: reads registration
- Request query dispatcher → Request parameter handlers: runs handlers
- Search parameter → Request query dispatcher: recurses nested search
- Search parameter → Operator registry: loads operators
- Operator registry → Package configuration: reads registration
- Search parameter → Search parsers: parses criteria
- Search parameter → Custom field parser: parses custom fields
- Search parameter → Operator callbacks: dispatches operator
- Operator callbacks → Eloquent builder: adds constraints
- Search parsers → Model restrictions: checks model rules
- API client → Schema endpoint: requests schema
- Schema endpoint → Schema request validation: validates request
- Laravel route registration → Package schema route: registers routes
- Laravel route registration → Schema endpoint: registers action
- Schema endpoint → Schema generator: generates schema
- Schema endpoint → Model restrictions: checks relation rules
- Schema endpoint → Relation name normalization: normalizes relations
- Schema generator → Model restrictions: applies restrictions
- Schema generator → Operator registry: lists operators
- Schema generator → Application database: reads column metadata
- Schema generator → Search value types: classifies columns
- Eloquent builder → Application database: executes query