Routes are imported from OpenAPI specifications; accessing paths not defined in the specification results in an error
Restful-API-Starter — Laravel Starter Template
By omarfawzi
A Laravel-based RESTful API starter that uses OpenAPI specifications to drive route registration and request validation.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Integrates an OpenAPI PSR-7 message validator to validate requests according to the specification
Security authentication is executed according to OpenAPI specifications, handled by AuthenticationManager
Provides Makefile commands covering service rebuild, specification merge and validation, local Swagger UI hosting, and test execution
New endpoints require defining an operationId in the specification and registering it in ApiHandler::MAP
Template Details
Restful-API-Starter is a Laravel starter project that aims to delegate RESTful API request structure validation to OpenAPI specifications, allowing developers to focus on business logic validation and implementation. The project requires PHP 8.0 or higher, MySQL 8, and Laravel 9.
Its core mechanism is that routes are no longer written manually one by one but imported from OpenAPI specifications, so accessing paths not defined in the specification returns an error directly; security authentication is also executed according to the specification, handled by App\Modules\OpenApi\Services\AuthenticationManager. Request validation relies on thephpleague/openapi-psr7-validator, an OpenAPI PSR-7 message validator, with specification files placed in the storage/app/schema directory.
In terms of workflow, the project provides commands via a Makefile: make rebuild to rebuild and start services, make bundle to merge and validate specifications, make swagger-ui to host OpenAPI specifications locally, and make test to run tests. When adding new endpoints, you need to define an operationId for the operation in the specification and register that operationId with the corresponding RequestHandler in the MAP of app/Modules/Api/ApiHandler.php.
In terms of limitations, the project materials do not state its production readiness, performance, or other capabilities beyond the dependencies mentioned above; the licensing of third-party assets such as demo images, fonts, and icons must be checked separately.
Is it right for your project?
Use Cases
- Laravel API projects that need OpenAPI specifications as the single source for routing and request validation
- Teams that want to separate request structure validation from business code and focus on business logic implementation
- Development workflows that require locally hosting and viewing OpenAPI specification documentation
- API services in container environments that use a Makefile to uniformly manage builds, specification bundling, and testing
Suitable For
- Developers using Laravel who accept OpenAPI specification-driven routing
- API teams that need unified request validation and authentication specifications
- Projects accustomed to organizing local development commands with a Makefile
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
The environment must meet PHP >= 8.0, MySQL 8, and Laravel 9
- 2
Run make rebuild to rebuild and start services
- 3
Local development requires installing npm
- 4
Add OpenAPI specifications under storage/app/schema and define an operationId for each new operation
- 5
Add the operationId and corresponding RequestHandler to the MAP in app/Modules/Api/ApiHandler.php
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license in the public repository; the free scope is the code of this version and does not imply that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- There are hard runtime requirements: PHP version must be at least 8.0, the database must be MySQL 8, and the framework must be Laravel 9; versions below or above these may not work properly.
- Local development requires additionally installing npm (Node.js package manager), which is an external tool dependency outside the project.
- Routing is entirely determined by OpenAPI specifications; accessing paths not defined in the specification returns an error directly, and you cannot bypass the specification to add routes yourself.
- New endpoints must be added to the OpenAPI specification under storage/app/schema, and each operation must define an operationId, otherwise it cannot be integrated.
- The new operationId must be registered together with the corresponding RequestHandler in ApiHandler::MAP in app/Modules/Api/ApiHandler.php, otherwise requests cannot be processed.
View Original Text Basis
Permission is hereby granted, free of charge
Original License Text
- PHP >= 8.0 - MYSQL 8 - Laravel 9
Original README
- Install [npm](https://nodejs.org/en/download) for local development.
Original README
this also means that accessing any routes not specified in the open api specifications would return an error.
Original README
Add your open api specifications (under `storage/app/schema`) and **don't** forget to define an `operationId` for your new operation.
Original README
https://github.com/omarfawzi/Restful-API-Starter/blob/main/LICENSEhttps://github.com/omarfawzi/Restful-API-Starter/blob/main/README.mdAdd the new `operationId` and the corresponding `RequestHandler` to the `ApiHandler::MAP` (located at `app/Modules/Api/ApiHandler.php`).
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- Partly documented · 68 / 100
- Technologies
- Laravel
- Website type
- Starter
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2022-09-11
- Screenshot last checked
- 2026-10-13
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Laravel as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-13
Inspect the recorded source material
SHA-256: 150f323a1c1c8cb850d8c88131271ce40ab38eec6697a1861b60e036f8135b40
2026-10-13T06:00:01.867Z
Source file / repository[](https://github.com/omarfawzi/Restful-API-Starter/actions/workflows/main.yml) # Restful API Starter **Avoid** request schema code validation, starter which is integrated with the agnostic open api schema + validation in order to provide the best restful design for your API services, care about your business logic validation, implementation and leave the starter to take care of the rest. ### Request Life Cycle  ### Requirements - PHP >= 8.0 - MYSQL 8 - Laravel 9 ### Powered By - Open API (3.0.2) - [OpenAPI PSR-7 Message (HTTP Request/Response) Validator](https://github.com/thephpleague/openapi-psr7-validator) ### Specifications Added under `storage/app/schema` ([Live](https://omarfawzi.github.io/Restful-API-Starter/)). ### Routes Routes are imported from the open api specifications to provide a more generic way for configuring routes, this also means that accessing any routes not specified in the open api specifications would return an error. For more info check `App\Providers\RouteServiceProvider::configureRoutes` ### Security Security is done based on the specification as well and handled by the `App\Modules\OpenApi\Services\AuthenticationManager` ### Get Ready - `make rebuild` to rebuild and start services. - Install [npm](https://nodejs.org/en/download) for local development. - Add your open api specifications (under `storage/app/schema`) and **don't** forget to define an `operationId` for your new operation. - Add the new `operationId` and the corresponding `RequestHandler` to the `ApiHandler::MAP` (located at `app/Modules/Api/ApiHandler.php`). - `make bundle` to combine and validate your specs. - `make swagger-ui` to host your open api specs locally [localhost](http://localhost:8081). - `make test` to start running tests. Have a look over [Makefile](https://github.com/omarfawzi/Restful-API-Starter/blob/main/Makefile) for more options. ### Contributions Feel free to create Pull Requests.
Explore similar templates
Compare previews and descriptions within the same stack and category.

sage
Sage is a WordPress starter theme maintained by Roots, using Laravel Blade components and templates, Vite builds, Tailwind CSS, and built-in block editor support.
Laravel · Starter

wave
Wave is an open-source SaaS starter kit built on Laravel and released under the MIT license.
Laravel · SaaS

filament-starter
A Laravel TALL stack starter template maintained by Log1x, with a preconfigured Filament admin panel and plugins including Curator, Gravatar, Exceptions, Jobs Monitor, Breezy, Peek, and Logger.
Laravel · Starter

electrik
Electrik is a Laravel SaaS starter kit installed as a Composer package, with authentication, teams, Stripe subscription billing, and the Slate 3 interface under the Electrik\ namespace rather than copied into App\.
Laravel · SaaS

php-saas
php-saas is a Laravel-based SaaS starter positioned as an everything-included kit. It generates new projects via a global Composer command and includes authentication with two-factor, API tokens, Stripe and Paddle billing, and project, team, and organization management.
Laravel · SaaS

filament-jetstream
A Laravel starter kit that implements Jetstream-like authentication and account features using Filament's native panels and components. It includes login, registration, two-factor authentication, session management, user profiles, and optional teams and API tokens.
Laravel · Starter
