Skip to content

Latest commit

 

History

History
283 lines (159 loc) · 8.05 KB

README_SPANISH.md

File metadata and controls

283 lines (159 loc) · 8.05 KB

API REST EN SLIM PHP

Este es un ejemplo de una API RESTful construida con el micro-framework Slim PHP.

Esta simple API permite administrar recursos tales como: usuarios, tareas y notas.

También puedes leerlo en inglés README IN ENGLISH.

Software License Build Status Code Quality Test Coverage Packagist Version

alt text

🖥️ TECNOLOGÍAS UTILIZADAS:

Las principales tecnologías utilizadas en este proyecto son:

  • PHP 8
  • Slim 3
  • MySQL
  • Redis
  • dotenv
  • PHPUnit
  • JSON Web Tokens (JWT)

Herramientas Adicionales:

Además, utilizo otras herramientas adicionales como por ejemplo:

  • Docker & Docker Compose
  • Travis CI
  • Swagger
  • Code Climate
  • Scrutinizer
  • Sonar Cloud
  • PHPStan
  • PHP Insights
  • Heroku
  • CORS

⚙️ INSTALACIÓN RÁPIDA:

Requerimientos:

  • Git
  • Composer
  • PHP >= 8.0
  • MySQL/MariaDB
  • Redis (Opcional)
  • O simplemente Docker

Usando Composer:

Puede crear un nuevo proyecto ejecutando los siguientes comandos:

$ composer create-project maurobonfietti/rest-api-slim-php [my-api-name]
$ cd [my-api-name]
$ composer restart-db
$ composer test
$ composer start

How to install

Usando Git:

En su terminal favorita ejecute estos comandos:

$ git clone https://github.com/maurobonfietti/rest-api-slim-php.git && cd rest-api-slim-php
$ cp .env.example .env
$ composer install
$ composer restart-db
$ composer test
$ composer start

Usando Docker:

Puedes probar este proyecto usando docker y docker-compose.

Version Requerida Docker:

  • Engine: 18.03+
  • Compose: 1.21+

Comandos:

# Start the API (this is my alias for: docker-compose up -d --build).
$ make up

# To create the database and import test data from scratch.
$ make db

# Checkout the API.
$ curl http://localhost:8081

# Stop and remove containers (it's like: docker-compose down).
$ make down

🛠️ INSTALACIÓN PASO A PASO:

Si tuviste alguna duda o problema, puedes consultar esta guía paso a paso.

🎦 TUTORIALS:

Mira esta mini serie de videos acerca de Slim PHP.

📹 VIDEO #1

Cómo instalar y configurar esta API.

🎥 VIDEO #2

Ejemplo de cómo utilizar esta API con JWT para autenticación.

📹 VIDEO #3

Cómo usar Redis en esta API con Slim PHP.

🎥 VIDEO #4

Cómo hacer el despliegue de una API con Slim PHP usando Heroku.

📦 DEPENDENCIAS:

LISTA DE DEPENDENCIAS REQUERIDAS:

  • slim/slim: Micro framework PHP que ayuda a escribir rápidamente aplicaciones y APIs simples pero potentes.
  • respect/validation: El motor de validación más impresionante jamás creado para PHP.
  • palanik/corsslim: Middleware de intercambio de recursos de origen cruzado (CORS) para PHP Slim.
  • vlucas/phpdotenv: Carga las variables de entorno de .env a getenv(), $_ENV y $_SERVER automágicamente.
  • predis/predis: Cliente Redis flexible y con funciones completas para PHP y HHVM.
  • firebase/php-jwt: Una biblioteca simple para codificar y decodificar JSON Web Tokens (JWT) en PHP.

LISTA DE DEPENDENCIAS PARA DESARROLLO:

  • phpunit/phpunit: Framework para hacer Unit Testing en PHP.
  • phpstan/phpstan: PHPStan, herramienta de análisis estático para PHP.
  • pestphp/pest: Pest es un elegante PHP Testing Framework con un enfoque en la simplicidad.
  • nunomaduro/phpinsights: Comprobaciones instantáneas de calidad PHP desde su consola.
  • vimeo/psalm: Una herramienta de análisis estático para encontrar errores en aplicaciones PHP.
  • rector/rector: Actualizaciones y refactorización instantánea de cualquier código PHP 5.3+.

🚥 TESTING:

Ejecutar los tests PHPUnit con composer test.

$ composer test
> phpunit
PHPUnit 9.5.28 by Sebastian Bergmann and contributors.

........................................................          56 / 56 (100%)

Time: 00:00.697, Memory: 18.00 MB

OK (56 tests, 343 assertions)

📸 CAPTURA DE PANTALLA:

Screen Shot API using Browser


Screen Shot API using Postman


📚 DOCUMENTACIÓN:

ENDPOINTS:

INFO:

  • Help: GET /

  • Status: GET /status

USERS:

  • Login User: POST /login

  • Create User: POST /api/v1/users

  • Update User: PUT /api/v1/users/{id}

  • Delete User: DELETE /api/v1/users/{id}

TASKS:

  • Get All Tasks: GET /api/v1/tasks

  • Get One Task: GET /api/v1/tasks/{id}

  • Create Task: POST /api/v1/tasks

  • Update Task: PUT /api/v1/tasks/{id}

  • Delete Task: DELETE /api/v1/tasks/{id}

NOTES:

  • Get All Notes: GET /api/v1/notes

  • Get One Note: GET /api/v1/notes/{id}

  • Create Note: POST /api/v1/notes

  • Update Note: PUT /api/v1/notes/{id}

  • Delete Note: DELETE /api/v1/notes/{id}

Ver documentación de la API con la lista completa de endpoints.

IMPORTAR EN POSTMAN:

Toda la información de la API, preparada para descargar y utilizar como colección de postman: Importar Colección.

Run in Postman

🚀 DESPIEGLE:

Puedes hacer deploy de esta API usando Heroku.

Deploy

ℹ️ MAS INFORMACIÓN:

Para obtener más información sobre este proyecto, consulta mi publicación: Cómo crear una API REST con Slim PHP.

También puede echar un vistazo a la aplicación web de la lista de tareas que desarrollé usando esta API en Angular.

💬 CONTRIBUCIONES:

Si desea contribuir al proyecto, abra un isse o envíe una solicitud de extracción (PR). ¡Las contribuciones son siempre bienvenidas!

❤️ ¿TE GUSTA EL PROYECTO?

Puedes apoyar este proyecto invitándome un café ☕ 😋 o dando una estrella a este repo ⭐ 😎.

Buy Me a Coffee at ko-fi.com

📄 LICENCIA

Licencia MIT. Consultar Archivo de licencia para obtener más información.