Skip to content

Un ejemplo de RESTful API creado con Laravel Lumen durante el Curso Profesional Lumen + React, disponible en Webtraining.Zone.

Notifications You must be signed in to change notification settings

webtraining-zone/curso-profesional-lumen-react-backend

Repository files navigation

Curso Profesional Lumen + React

Un ejemplo de RESTful API creado con Laravel Lumen durante el Curso Profesional Lumen + React, disponible en Webtraining.Zone.

Curso Profesional Lumen + React

Pre-requisitos

  1. Este RESTful API fue creado con Laravel Lumen, que nos exige una versión moderna de PHP y algunas de sus extensiones instaladas:
PHP >= 7.1.3
OpenSSL PHP Extension
PDO PHP Extension
Mbstring PHP Extension

Para desarrollo y configuración rápida te recomendamos instalar un meta-paquete como XAMPP descargar aquí. Sólo hay que estar seguros de descargar XAMPP con PHP 7.1 (recomendado). Esto te instalará MySQL, PHPMyAdmin, Apache y claro un PHP moderno.

  1. También necesitaremos composer (descargar aquí) para descargar las dependencias de Laravel Lumen.

  2. Algo que recomendamos es instalar un cliente para probar todos tus end-points. Nuestra herramienta favorita para tal propósito es Postman que tiene una aplicación gratuita para Windows, GNU/Linux y OS X. Después de instalar Postman puedes importar una colección de end-points que hemos creado para ti y que está disponible en: <REPO>/webtraining/Project Manager API.postman_collection.

Una vez importada tu colección tendrás acceso a todos los servicios de Lumen como en la siguiente imagen:

Postman

Instalación para Desarrollo

  1. Instalar dependencias de Composer (ejecutar desde el directorio raiz de este proyecto).
composer install
  1. Configurar base de datos:

Para tu comodidad hemos creado un MySQL dump en este archivo <REPO>/database/sql/project_manager_db_lumen.sql. Este archivo contiene dos usuarios, un proyecto y una tarea de demostración.

2.1) Importa esta base de datos usando algún cliente web como PHPMyAdmin o Sequel Pro. 2.2) Crea un usuario que se pueda conectar a esta base de datos, por ejemplo:

Base de datos:  project_manager_db_lumen
Usuario:        project_mgr_user_lumen
Constraseña:    D5xNL5LpHPVTxwz4

2.3) Crea un archivo llamado .env en la raíz de este proyecto, con los siguientes datos:

APP_ENV=local
APP_DEBUG=true
APP_KEY=base64:L9X69/CcxQHmSaxJq7cFFmtoJSUJBYla4WiypRCHPDI=
APP_TIMEZONE=UTC

LOG_CHANNEL=stack
LOG_SLACK_WEBHOOK_URL=

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=project_manager_db_lumen
DB_USERNAME=project_mgr_user_lumen
DB_PASSWORD=D5xNL5LpHPVTxwz4

CACHE_DRIVER=file
QUEUE_CONNECTION=sync

Lo importante en este caso son los datos de conexión a la base de datos y la generación de tu APP_KEY que puedes generar usando este Random Generator.

Para crear un usuario en MySQL podemos usar:

CREATE USER 'project_mgr_user_lumen'@'localhost' IDENTIFIED BY 'D5xNL5LpHPVTxwz4';
GRANT ALL PRIVILEGES ON project_manager_db_lumen.* TO 'project_mgr_user_lumen'@'localhost';
FLUSH PRIVILEGES;

Nota para MySQL 8

Si estás usando MySQL 8, la forma de creación de tu base de datos es como sigue:

CREATE SCHEMA `lumen_projects_db` DEFAULT CHARACTER SET utf8 ;
  1. Iniciar tu servidor en el puerto 8085
php -S localhost:8085 -t public

Preguntas Frecuentes

¿Por qué cuando visito un end-point, por ejemplo /users veo un código JSON de "Unauthorized"?

Recuerda que todos los end-points de nuestro RESTful API sólo pueden ser llamados utilizando el header Content-Type como application/json (es decir, con llamados AJAX debería funcionar correctamente).

Cuando intento arrancar el servidor en el puerto 8085 me dice que el puerto ya está ocupado ¿cómo lo soluciono?

Simplemente cambia el puerto de conexión, por ejemplo si queremos arrancar el servidor en el puerto 8089:

php -S localhost:8089 -t public

Lumen PHP Framework

Build Status Total Downloads Latest Stable Version Latest Unstable Version License

Laravel Lumen is a stunningly fast PHP micro-framework for building web applications with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Lumen attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as routing, database abstraction, queueing, and caching.

Official Documentation

Documentation for the framework can be found on the Lumen website.

Security Vulnerabilities

If you discover a security vulnerability within Lumen, please send an e-mail to Taylor Otwell at taylor@laravel.com. All security vulnerabilities will be promptly addressed.

License

The Lumen framework is open-sourced software licensed under the MIT license

About

Un ejemplo de RESTful API creado con Laravel Lumen durante el Curso Profesional Lumen + React, disponible en Webtraining.Zone.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages