Es un proyecto que implementa un rest api y autenticación. Está basado en PHP con composer, Eloquent y PHP Router.
Web API Rest es un micro framework que muestra la creación y uso de un API Rest. Además tiene un pequeño Auth que permite la autenticación de usuarios. Está basado en Eloquent para el manejo de los modelos, PHP Router para el manejo de las rutas y PHP Dotenv para manejar las configuraciones.
La estructura de carpeta es muy simple, cómo se muestra a continuación:
composer install
php -S localhost:8000
Al abrir en el navegador(browser) nuestra web en localhost:8000 podemos acceder al proyecto. En el /api podemos acceder a la API y en /web podemos acceder a la web.
Este proyecto sólo tiene estos dos end points:
Manejo de la autenticación.
//JSON Response - 200
{
“data”: {
“id”: 29,
“full_name”: “Pedro Caicedo”,
“username”: “pcaicedo”,
“email”: “info@pcaicedo.com”,
“remember_token”: null,
“created_at”: “-0001-11-30 00:00:00”,
“updated_at”: “-0001-11-30 00:00:00”,
“deleted_at”: null
}
}
* POST /api/auth/register
//JSON Request
{
“full_name”: “Pedro Caicedo”,
“username”: “caicedo1089”,
“email”: “correo@dominio.com”,
“password”: “123456”
}
//JSON Response - 200
{
“data”: {
“id”: 31
}
}
* GET /api/auth/logout
//JSON Request - No aplica
//JSON Response - 200
{
“data”: {
“id”: 29
}
}
###USERS:
CRUD de los usuarios del sistema.
* GET /api/users/
//JSON Request
?filter=
//JSON Response - 200
{
“data”: [
{
“id”: 28,
“full_name”: “José Caicedo”,
“username”: “caicer”,
“email”: “caicer”,
“remember_token”: null,
“created_at”: “2018-03-05 06:01:48”,
“updated_at”: “-0001-11-30 00:00:00”,
“deleted_at”: null
}
]
}
* POST /api/users/
//JSON Request
{
“full_name”: “Pedro Caicedo”,
“username”: “caicedo1089”,
“email”: “correo@dominio.com”,
“password”: “123456”
}
//JSON Response - 200
{
“data”: {
“id”: 31
}
}
* PUT /api/users/<id_user>
Todos los parametros de la solicitud (request) son opcionales, ea decir si sólo queremos actualizar el nombre sólo enviamos el parametro full_name en el JSON.
//JSON Request
{
“full_name”: “Otro Nombre”,
“username”: “caicedo1089_CO”,
“email”: “correo@dominio.com.co”,
“password”: “1234567”
}
//JSON Response - 200
{
“data”: {
“id”: 31
}
}
* DELETE /api/users/<id_user>
//JSON Request - No aplica
//JSON Response - 200
{
“data”: {
“id”: 31
}
}
```