PHP Classes

File: bootstrap/routes/api.php

Recommend this page to a friend!
  Classes of Francisco Núñez   Catalyst   bootstrap/routes/api.php   Download  
File: bootstrap/routes/api.php
Role: Auxiliary script
Content type: text/plain
Description: Configuration script
Class: Catalyst
Framework to develop MVC-based PHP applications
Author: By
Last change:
Date: 2 days ago
Size: 2,440 bytes
 

Contents

Class file image Download
<?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']);
        });
    });
});
*/