A lightweight Laravel package designed to make building powerful APIs easier and faster.
- PHP 99.6%
- Blade 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| config | ||
| docs | ||
| resources/views | ||
| src | ||
| stubs | ||
| tests | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| artisan | ||
| composer.json | ||
| composer.lock | ||
| CONTRIBUTING.md | ||
| doc.md | ||
| phpunit.xml | ||
| README.md | ||
Laravel Query Gate
A lightweight, declarative API builder for Laravel with API versioning, standalone actions, frontend SDK, and zero boilerplate.
Modified version of Laravel Query Gate
Added Features
- Standalone Actions: Create model-free endpoints for custom logic.
- Rate Limiting: Built-in support for rate limiting on API endpoints.
- Swagger UI Fix: Fixed Swagger UI
Why Query Gate?
| Feature | Query Gate | Laravel Orion |
|---|---|---|
| API Versioning | ✅ Built-in (Header-based) | ❌ |
| Standalone Actions | ✅ Model-free endpoints | ❌ |
| Open API | ✅ | ❌ |
| Laravel 10+ | ✅ | ❌ |
| Zero Config | ✅ | ⚠️ |
Quick Start
use BehindSolution\LaravelQueryGate\Traits\HasQueryGate;
class User extends Model
{
use HasQueryGate;
public static function queryGate(): QueryGate
{
return QueryGate::make()
->filters(['name' => 'string', 'email' => 'email'])
->allowedFilters(['name' => ['like'], 'email' => ['eq']])
->sorts(['name', 'created_at']);
}
}
# That's it! Your API is ready:
GET /query/users?filter[name][like]=John&sort=-created_at
Ecosystem
🤝 Contributing
Contributions are welcome! Please see CONTRIBUTING.md for details.
📄 License
MIT