https://github.com/YerkoPalma/api-framework
:skull:
https://github.com/YerkoPalma/api-framework
Last synced: 10 months ago
JSON representation
:skull:
- Host: GitHub
- URL: https://github.com/YerkoPalma/api-framework
- Owner: YerkoPalma
- License: mit
- Created: 2015-08-05T03:13:41.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2015-10-29T20:28:29.000Z (about 10 years ago)
- Last Synced: 2024-10-14T16:27:38.806Z (about 1 year ago)
- Language: PHP
- Homepage:
- Size: 156 KB
- Stars: 3
- Watchers: 3
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Api Framework#
Mini (micro quizas) framework para hacer APIs RESTful. Actualmente en desarrollo, utiliza php y apache.
## TODO ##
- [x] Retorno en formato JSON
- [x] Soporte para metodos GET
- [x] Soporte para metodos POST
- [ ] Soporte para metodos PUT
- [ ] Soporte para metodos DELETE
- [x] ORM basico *
- [ ] Agregar tests
- [ ] Agregar errores en caso de uri incorrecta
*Solo tiene soporte para `postgresql`*
## Modo de uso
Para poder usar el framework se debe clonar el repositorio
```
$ [sudo] git clone https://github.com/YerkoPalma/api-framework.git
```
Luego agregar archivos de acuerdo a la estructura de la API que se quiera crear.
Automaticamente se considera como *endpoint* el nombre de cada archivo `.php`, el cual debe contener, por lo menos una clase con el mismo nombre del archivo, dicha clase debe extender la clase `api` del framework.
```php
```
Este archivo generará la siguiente uri para la api `www.domain.cl/api-folder/posts`
Aún no hay ni un endpoint para la api. Para crear un endpoint, simplemente se debe crear una funcion en la clase `posts` y ese será endpoint de la api.
```php
```
Esto generará las siguientes uris para la api
```php
www.domain.cl/api-folder/posts/add
www.domain.cl/api-folder/posts/show/$id
```
Como se puede apreciar, si la funcion tiene parametros de entrada, estos serán los que se incluyan en la uri.
Además de lo anterior, la api posee ciertas uris predefinidas en que no se utilizá endpoint.
| Función | Metodo | Uri |
| ------------- | ------------- | --- |
| index() | GET | /api-folder/filename |
| read($id) | GET | /api-folder/filename/$id |
| create() | POST | /api-folder/filename |
| update($id) | PUT | /api-folder/filename/$id |
## ORM ##
Dentro de cada funcion de la api que se implemente, se puede escribir cualquier código en php, sin embargo,
se implemento un ORM sencillo para conectarse con `postgresql` para usarlo se debe incluir en el archivo la clase `lib/api_db.php`
Para configurar el ORM se deben incluir en el archio `lib/db.php` los datos de la conexión que se usará.
Para usar el orm se debe utilizar la clase `model` que se obtiene de la clase `db`, de la siguiente manera
```php
db = $db;
}
function show($id){
$model = $this->db->getModel("posts");
/* .. */
}
}
?>
```
El ORM esta pensado para obtener un modelo por cada tabla de la base de datos, por lo tanto, se espera en el metodo `getModle()` el nombre de la tabla que se busca obtener. Actualmente existen algunos metodos como `select` o `insert` soportados por el ORM. En los archivos `usuario.php` y `mensaje.php` se puede ver algunos de sus usos.
## Contacto ##
Cualquier duda o consulta, por un issue de github :)