<?php
declare(strict_types=1);
/**************************************************************************************
*
* Catalyst PHP Framework
* PHP Version 8.3 (Required).
*
* @package Catalyst
* @subpackage Public
* @see https://github.com/arcanisgk/catalyst
*
* @author Walter Nuñez (arcanisgk/original founder) <[email protected]>
* @copyright 2023 - 2025
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
*
* @note This program is distributed in the hope that it will be useful
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE.
*
* @category Framework
* @filesource
*
* @link https://catalyst.dock Local development URL
*
*/
use Catalyst\Framework\Core\Route\Router;
// Get router instance
$router = Router::getInstance();
// API route group with common prefix and middleware
/*
$router->group([
'prefix' => 'api',
'middleware' => ['api', 'throttle']
], function ($router) {
// API version 1
$router->group(['prefix' => 'v1'], function ($router) {
// Authentication endpoints
$router->post('/auth/login', 'Api\AuthController@login');
$router->post('/auth/register', 'Api\AuthController@register');
// Public endpoints
$router->get('/products', 'Api\ProductController@index');
$router->get('/products/{id}', 'Api\ProductController@show')
->where('id', '[0-9]+');
// Protected endpoints
$router->group(['middleware' => 'auth:api'], function ($router) {
// User profile
$router->get('/user', 'Api\UserController@currentUser');
$router->put('/user', 'Api\UserController@update');
// CRUD for user resources
$router->get('/orders', 'Api\OrderController@index');
$router->post('/orders', 'Api\OrderController@store');
$router->get('/orders/{id}', 'Api\OrderController@show');
$router->put('/orders/{id}', 'Api\OrderController@update');
$router->delete('/orders/{id}', 'Api\OrderController@destroy');
});
});
// API version 2 (for future use)
$router->group(['prefix' => 'v2'], function ($router) {
$router->get('/', function () {
return json_success(['message' => 'API v2 coming soon']);
});
});
});
*/
|