Modular architecture
Each domain lives in its own module — models, services, controllers, requests and routes, isolated and reusable.
A modular Laravel API with multi-channel authentication, a dynamic query engine, role-based permissions and auto-generated documentation.
# List with filtering, relations, ordering & pagination
GET /admin/<module>/<resource>
Content-Type: application/json
{
"select": ["id", "name", "price"],
"relations": ["category:id,name"],
"oper": { "and": ["status|=|active", "price|>=|50"] },
"orderby": [ { "category.name": "asc" } ],
"pagination": { "page": 1, "pageSize": 25 }
}
The same query engine powers every resource: column selection, structured filters, relation loading, ordering and pagination.
Each domain lives in its own module — models, services, controllers, requests and routes, isolated and reusable.
Generic CRUD with a powerful query engine: column selection, relation loading, structured filters, dot-notation ordering, pagination and hierarchies.
Admin, mobile, site and partner channels with JWT or API-key auth, per-channel rate limiting and audit logging.
Fine-grained authorization with the module.entity.action convention, role inheritance and direct grants (Spatie).
OpenAPI 3.0, Postman and Insomnia generated from your routes, form requests and models — no annotations.
Scenario-based validation, reusable ID rules, column validation and an optional read cache that self-invalidates on writes.