PHPackages                             euroglas/eurorest - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. euroglas/eurorest

ActiveLibrary[HTTP &amp; Networking](/categories/http)

euroglas/eurorest
=================

Servidor REST para EUROGLAS

1.0.0(5y ago)0482MITPHP

Since Feb 25Pushed 4y ago1 watchersCompare

[ Source](https://github.com/ogalindoch/eurorest)[ Packagist](https://packagist.org/packages/euroglas/eurorest)[ Docs](http://euroglas.net)[ RSS](/packages/euroglas-eurorest/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (1)Dependencies (2)Versions (2)Used By (2)

EUROGLAS rest (eurorest)
========================

[](#euroglas-rest-eurorest)

Servidor REST para EUROGLAS
---------------------------

[](#servidor-rest-para-euroglas)

Modulo base (CORE) para los servidores REST de EUROGLAS.

Define:

- Manejador de rutas URL mediante AltoRouter
- Una interfaz para los modulos que se van a implementar
- Una interfaz para los modulos que validan el acceso (auth)

### Archivos

[](#archivos)

```
eurorest
├───src
│   ├───auth.php
│   ├───authInterface.php
│   ├───restModuleInterface.php
│   ├───restServer.php
│   └───home
│       └─── index.php
├───.gitignore
├───composer.json
├───index.php
├───iniciaServidorDePruebas.php
├───servidor.ini
├───LICENSE
└───README.md

```

### Directorio `src`

[](#directorio-src)

Contiene los archivo que implementan el proyecto

Interfaces

- authInterface | Validacion de los usuarios
- restModuleInterface | Modulos REST

Clases

- auth | Clase abstracta como base para Clases de Usuarios
- restServer | Implementación del servidor REST

### Directorio `src/home`

[](#directorio-srchome)

Contiene la pagina que se muestra cuando se accesa a la URL base `/` que informa al usuario que se esta accediendo a una API, no a una pagina regular.

### Directorio Raiz

[](#directorio-raiz)

Contiene los archivos para pruebas del modulo.

ArchivoDescripcion.gitIgnoreblahcomposer.jsonManejo de requerimientosindex.phpImplementacion del servidor de pruebasservidor.iniConfiguracion del servidoriniciaServidorDePruebas.batScript para arrancar el servidor usando el servidor interno de PHPLICENSELicencia de uso de este paqueteREADME .mdéste archivoConfiguración
-------------

[](#configuración)

LlaveExplicaciónServerName=""Nombre del servidorModoDebug = 1Habilita el modo de desarrolloSkipUserAuth = 1Permite iniciar sin usuarios, sin generar error\[Modulos\]Grupo de Modulos a habilitar (Vacio porque estamos en CORE)URLs
----

[](#urls)

MetodoURLDescripciónOPTIONS*\[todas\]*Devuelve los metodos aceptados por el servidorGET/Raiz (imprime contenido de HOME)GET/pingPrueba rápida para saber si el servidor esta funcionandoURLs para desarrollo
--------------------

[](#urls-para-desarrollo)

Estas URLs (excepto la primera) estarán disponibles SOLO cuando el servidor se encuentra en modo de desarrollo (`ModoDebug=1`).

MetodoURLDescripciónGET/debugConsulta si el servidor esta en modo de desarrolloGET/debug/configMuestra el contenido del archivo de configuración (ya parseado)GET/debug/serverNameMuestra el nombre del servidor (`ServerName`)GET/debug/modulosMuestra lista de modulos habilitadosGET/debug/permisosLista de permisos definidos por cada moduloGET/debug/urlsLista de URLs definidas por cada moduloGET/debug/authProviderNombre del modulo registrado para validar usuarios y entregar el Token
Uso del servidor REST
=====================

[](#uso-del-servidor-rest)

Para crear un servidor que use este proyecto para servir URLs REST

- Instala composer en tu ambiente de desarrollo
- Crea un directorio para tu proyecto
- Crea un archivo `composer.json` para definir los requerimientos
- Agrega este proyecto como requerimiento de tu servidor

```
        {
            "require": {
                "euroglas/eurorest": "^1.0.0"
            }
        }
```

- Ejecuta composer para instalar las dependencias (esto va a generar el archivo `composer.lock` y el directorio `vendor`)

```
php composer.phar install

```

Si quieres hacer uso de la utileria de autocarga de clases de composer, incluye esto en tu script php (`index.php`):

```
require 'vendor/autoload.php';
```

Redirigir las solicitudes de URLs a tu aplicación
-------------------------------------------------

[](#redirigir-las-solicitudes-de-urls-a-tu-aplicación)

Necesitamos que todas las solicitudes de ubicaciones no-existentes, sean procesadas por tu aplicacion (para que sean interpretadas como URLs del servidor Rest).

Si estas usando APACHE (`.htaccess`):

```
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]
```

Si estas usando Nginx (`nginx.conf`):

```
try_files $uri /index.php;
```

Implementacion de modulos
=========================

[](#implementacion-de-modulos)

Hay varios detalles que debes tener presentes a la hora de hacer tu modulo, y no pierdas incontables horas (y maldiciendo al autor de éste sistema) tratando de entender porque no funcionan las cosas.

Rutas y nombres
---------------

[](#rutas-y-nombres)

El sistema esta basado en el autoloader de composer (que a su vez sigue las especificaciones de [PSR4](https://www.php-fig.org/psr/psr-4/)), esto significa que:

### Usa src

[](#usa-src)

Los archivos que implementan tu modulo, deberán estar dentro del directorio src de tu proyecto.

### El nombre del archivo importa

[](#el-nombre-del-archivo-importa)

Para que la clase que implementa tu modulo, sea accesible al autoloader, el archivo se debe llamar IGUAL que la clase. Y esto es esctricto, respeta minusculas y mayuscular.

La clase `class ejemploConCamel` debe estar en el archivo `ejemploConCamel.php`

Espacio de nombres
------------------

[](#espacio-de-nombres)

```
namespace euroglas\pedidos;
```

Supongo que cualquier espacio de nombres es tan valido como otro, pero para evitar sorpresas, usa el espacio de nombres de EUROGLAS.

### Herencia de tus mayores

[](#herencia-de-tus-mayores)

Las clases que implementan los submodulos, deben implementar la interfaz restModuleInterface

```
class ejemplo implements \euroglas\eurorest\restModuleInterface
```

### Accesibilidad de las funciones

[](#accesibilidad-de-las-funciones)

Las funciones que implementan la funcionalidad de las URLs (los callback), deben poder ser llamados desde el servidor, por lo que necesitan ser funciones publicas.

```
public function miEjemplo()
```

Implementacion de modulos de usuario (auth)
===========================================

[](#implementacion-de-modulos-de-usuario-auth)

Los modulos que proveen los token de acceso, a cambio de algo de informacion, los llamamos Modulos de Acceso de Usuarios.

Siguen todas las caracteristicas de los modulos normales, EXCEPTO que deben heredar de la clase abstracta `auth`.

La clase abstracta `auth`, implementa tanto `restModuleInterface` como `authInterface`. Y proporciona algunas implementaciones default para algunas de las funciones.

```
class authEjemplo extends \euroglas\eurorest\auth
```

**Nota** Cuando implementes un modulo *auth*, ten en cuenta que un servidor solo puede implementar un metodo de authenticacion (por ahora). Asegurate que tu modulo esta habilitado en la configuracion, y comprueba que esta listado como validador de usuarios, usando la url `/debug/authProvider`

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1903d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/36009953?v=4)[Octavio Galindo](/maintainers/ogalindoch)[@ogalindoch](https://github.com/ogalindoch)

---

Top Contributors

[![ogalindoch](https://avatars.githubusercontent.com/u/36009953?v=4)](https://github.com/ogalindoch "ogalindoch (52 commits)")

---

Tags

restservereuroglas

### Embed Badge

![Health badge](/badges/euroglas-eurorest/health.svg)

```
[![Health](https://phpackages.com/badges/euroglas-eurorest/health.svg)](https://phpackages.com/packages/euroglas-eurorest)
```

###  Alternatives

[ezralazuardy/heimdall

Painless OAuth 2.0 Server for CodeIgniter 4

454.2k](/packages/ezralazuardy-heimdall)[phrest/api

REST API Package for Phalcon PHP

304.2k](/packages/phrest-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
