PHPackages                             siu-toba/rest - 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. [API Development](/categories/api)
4. /
5. siu-toba/rest

ActiveLibrary[API Development](/categories/api)

siu-toba/rest
=============

Libreria para servicios REST

v3.2.0(11mo ago)587.4k↓28.8%8[8 issues](https://github.com/SIU-Toba/rest/issues)[1 PRs](https://github.com/SIU-Toba/rest/pulls)2PHPPHP &gt;=8.1.0CI failing

Since Feb 25Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/SIU-Toba/rest)[ Packagist](https://packagist.org/packages/siu-toba/rest)[ Docs](http://toba.siu.edu.ar)[ RSS](/packages/siu-toba-rest/feed)WikiDiscussions develop Synced 1mo ago

READMEChangelog (10)Dependencies (4)Versions (30)Used By (2)

[![Build Status](https://camo.githubusercontent.com/e6a0b8152f302e8a28f6ff616a11dfaefc80e5d811d53f1bf8f8cc5e148d21b7/68747470733a2f2f7472617669732d63692e6f72672f5349552d546f62612f726573742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/SIU-Toba/rest)

REST
====

[](#rest)

Esta librería permite servir APIs rest de forma simple pero estructurada. La misma no posee requisitos específicos de Toba y puede utilizarse de manera standalone en otros sistemas.

Creación de una API REST
------------------------

[](#creación-de-una-api-rest)

La definición de una API REST se basa en convenciones y no requiere especificar metadatos.

### Definición de Recursos

[](#definición-de-recursos)

Toda información que pueda ser nombrada es un Recurso, por ejemplo: documentos, imagenes, colecciones de otros recursos, tablas definidas en una base de datos, etc. Los recursos a publicar/compartir para un determinado proyecto deben indicarse mediante una clase PHP dentro de la carpeta */proyectos/nombre\_proyecto/php/rest/*. Por Ejemplo:

- `php/rest/recurso_personas.php` se publica en `http://../rest/personas`
- `php/rest/personas/recurso_personas.php` se publica en `http://../rest/personas`
- `php/rest/recurso_deportes.php` se publica en `http://../rest/deportes`

Los archivos de los recursos deben tener el prefijo `recurso_`, por ejemplo, para el recurso `personas`, se debe definir el archivo `recurso_personas.php`. Cualquier otro archivo definido sin dicho prefijo, no será interpretada como recurso. El nombre en sí de la clase puede diferir del del archivo, no será tomado en cuenta por nada de la librería, simplemente instancia la clase que encuentre en el archivo.

Cada acceso al recurso tiene asociado un método en la clase del mismo, recibiendo como parámetros la parte dinámica de la URL. Por ejemplo, para el siguiente recurso se utiliza el parametro `id` como identificador:

```
    //Equivale a GET /rest/{id}: retorna un recurso puntual
    function get($id) ...

    //Equivale a DELETE /rest/{id}: elimina un recurso puntual
    function delete($id) ...

    //Equivale a PUT /rest/{id}: modifica parte de los atributos del recuso
    function put($id) ...
```

Aquí un ejemplo completo de recurso `personas`:

```
